Ich entwickle zwar unter Lazarus, aber das Problem dürfte auf Delphi übertragbar sein
.
Mein Problem ist nun, dass ich mit der neuen Bass.dll eine Wav mehrfach abspielen möchte.
Laden funktioniert (
Handle wird gespeichert )
Das Abspielen funktioniert genau 1 mal
Wenn ich danach wieder auf den Button Klicke passiert nichts mehr
Was ist beim neuen Bass.dll anders als beim Alten ?
Könnt ihr mir weiter helfen ?
Im Anhang der Lazarus source ( müsste recht einfach nach Delphi portierbar sein ..)
Edit :
Also hier noch mal die Relevanten Source Stellen :
Delphi-Quellcode:
Procedure TForm1.LoadSound(Value: String; index: integer);
Begin
If fileexists(Value) Then
Sounds[Index] := BASS_StreamCreateFile(False, PChar(value), 0, 0, BASS_SAMPLE_FX)
Else
showmessage('Soundmanager : Could not find :' + Value);
End;
Procedure TForm1.FormCreate(Sender: TObject);
Begin
Soundpath := IncludeTrailingPathDelimiter(ExtractFilePath(paramstr(0)));
setlength(sounds, 1);
// Check if the Library Version is, correkt.
If (BASS_GetVersion() Shr 16) <> Bassversion Then Begin
Showmessage('Unable to init the Bass Library ver. :' + BASSVERSIONTEXT);
halt;
End;
// Bass.dll initialisieren
// Finitialized := BASS_Init(-1, 44100, 0, h_Wnd, Nil);
If Not Bass_init(-1, 44100, BASS_DEVIDE_DMIX, 0, Nil) Then Begin
Showmessage('Unable to init the device.');
halt;
End;
LoadSound(Soundpath + 'Menu_click.wav', 0);
End;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
// BASS_ChannelStop(Sounds[0]);
If Not BASS_ChannelPlay(Sounds[0], true) Then Begin
showmessage('Unable to play.');
End;
End;
Die MessageBox kommt nie, d.h. Bass Ansich hat wohl kein Problem mit dem Mehrfachen abspielen, auch wenn man nichts hört