Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi BASS_Init fehler bei aufruf bei 2 Auswertungen (https://www.delphipraxis.net/58087-bass_init-fehler-bei-aufruf-bei-2-auswertungen.html)

merlin2539 1. Dez 2005 09:25


BASS_Init fehler bei aufruf bei 2 Auswertungen
 
Hallo zusmmen
ich bin am verzweifeln, ich habe in meinem Programm ein Objekt das die einkommende Signale auf dem Micro Line in etc auswertwet dieses tut einwandfrei, jetzt woillte ich noch ein Cd player mit CD text einbauen, habe es auch getan aber er macht alles bis auf das er mit bei Inalisieren von Bass dann Fehler bring
siehe Code
Delphi-Quellcode:
von dem CD Player

  // Setup output - default device
  if (not BASS_Init(-1, 44100, 0, Handle, nil)) then
  begin
    MessageBox(0, 'Can''t initialize device', 'Error', MB_ICONERROR);
    Halt;
  end;

hier vor dem Texz dann kommt das für mein Micro

  //------ M icro AUswertung ----------------nd
  BASS_Init(-1, 44100, 0, Application.Handle, nil);
  OcilloScope := TOcilloScope.Create(PaintFrame.Width, PaintFrame.Height);
  Spectrum   := TSpectrum.Create(PaintFrame.Width, PaintFrame.Height);
  fftdata1     :=tstringlist.create;
könnt ihr mir ein rat geben wie ich das lösen kann, ich habe es soweit zurückverfolgt das es an dem BASS_Init liegen muss, das komische ist wenn ich das mit dem Micro rausnehme dann geht es trotzdem nicht, dann bekommt der Player keine Daten vom Stream komisch

hier noch der Coder für CD Player, Seperat tut er einwandfrei
Delphi-Quellcode:
  stream[drive] := BASS_CD_StreamCreate(drive, track, BASS_CD_FREEOLD); // create stream
  BASS_ChannelSetSync(stream[drive], BASS_SYNC_END, 0, @EndSync, 0); // set end syc
  if (drive = DWORD(curdrive)) then
  begin
    trkPos.Max := BASS_StreamGetLength(stream[drive]) div 176400; // set pos scroller range
    trkVol.Position := 0; // set default volume slider pos
    trkSpeed.Position := 100; // set default speed slider pos
    GroupBox2.Caption := 'Speed - 100%';
  end;
  BASS_ChannelPlay(stream[drive], False); // start playing

turboPASCAL 1. Dez 2005 14:14

Re: BASS_Init fehler bei aufruf bei 2 Auswertungen
 
Code:
von dem CD Player

  // Setup output - default device
  if (not [color=#ff0000]BASS_Init(-1, 44100, 0, Handle, nil)[/color]) then
  begin
    MessageBox(0, 'Can''t initialize device', 'Error', MB_ICONERROR);
    Halt;
  end;

hier vor dem Texz dann kommt das für mein Micro

  //------ M icro AUswertung ----------------nd
  [color=#ff0000]BASS_Init(-1, 44100, 0, [i][b]Application[/b][/i].Handle, nil);[/color]
  OcilloScope := TOcilloScope.Create(PaintFrame.Width, PaintFrame.Height);
  Spectrum   := TSpectrum.Create(PaintFrame.Width, PaintFrame.Height);
  fftdata1     :=tstringlist.create;
2x ein BASS_Init ?
Handle = das handle der Form un Application.Handle = das Handle der Application , beide sind nicht gleich.

Kommt eine Fehlermeldung und wenn ja welche ?

merlin2539 2. Dez 2005 07:40

Re: BASS_Init fehler bei aufruf bei 2 Auswertungen
 
Es kommt das er nicht sein Gerät insalliesieren kann, ich habe die Teile auch nur herauskopiert, habe keine ahnung für was das überhaupt genau ist. Deswegen bin ich auch so ratlos

turboPASCAL 2. Dez 2005 08:28

Re: BASS_Init fehler bei aufruf bei 2 Auswertungen
 
Bass_Init braucht nur einmal aufgerufen zu werden. Der Fehler kommt durch den zweiten Aufruf wenn kein Bass_Free aufgerufen wurde.

Zeig mal ein wenig mehr vom Quellcode, damit man den Zusammenhang sehen kann.

merlin2539 2. Dez 2005 08:53

Re: BASS_Init fehler bei aufruf bei 2 Auswertungen
 
habe ich auch schon versucht, funtkioniert nicht, wenn ich das bass free zwischen die 2 setze. geht nicht fehler kommt trotzdem

turboPASCAL 2. Dez 2005 09:02

Re: BASS_Init fehler bei aufruf bei 2 Auswertungen
 
Zitat:

Zitat von turboPASCAL
Zeig mal ein wenig mehr vom Quellcode, damit man den Zusammenhang sehen kann.


Ghostwalker 2. Dez 2005 15:39

Re: BASS_Init fehler bei aufruf bei 2 Auswertungen
 
Hallo,

BASS_INIT darf im gesamten Programm nur einaml Aufgerufen werden. Es initialisiert die Bibleothek. Jeder weiter Aufruf führt zu Fehlern.

Meine Empfehlung:

Im Hauptformular bei onCreate BASS_INIT aufrufen und bei onDestroy BASS_FREE. Dann bin ich mir
sicher das es läuft.


Zusätzlicher Hinweis:

Du solltest darauf Achten das die BASS.DLL und die BASS_CD.DLL miteinander können (Version !).


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz