AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bass v 2.4 Wav Mehrfach abspielen
Thema durchsuchen
Ansicht
Themen-Optionen

Bass v 2.4 Wav Mehrfach abspielen

Ein Thema von Corpsman · begonnen am 14. Okt 2010 · letzter Beitrag vom 15. Okt 2010
Antwort Antwort
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 14. Okt 2010, 17:58
du könntest auch versuchen, die Position wieder auf 0 (also auf den Anfang) zu setzen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 14. Okt 2010, 18:18
Sounds[Index] := BASS_SampleLoad(False, PChar(value), 0, 0, 0,BASS_SAMPLE_FX)
Dann Kommt Unable to Play.

BASS_ChannelSetPosition(Sounds[0], 0, 0); Hat auch nichts gebracht.

Was ich raus gefunden habe, wenn ich ein 2. Wave Lade, und dies nach dem 1. abspiele, dann kann ich danach beide in beliebiger Reihenfolge beliebig oft abspielen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 08:25
Moin,

ich hab mir mal dein Programm zur Brust genommen und so umgebaut,das es mit dem mehrfachen abspielen des sounds funktioniert.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

  Procedure 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);
    // messagebox(handle, Pchar('Could not find :' + Value), 'Error', MB_OK);
  End;

Var
  Soundpath: String;

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, 0, 0, Nil) Then
  Begin
    Showmessage('Unable to init the device.');
    halt;
  End;
  LoadSound(Soundpath + 'Menu_click.wav', 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Erg:DWord;
Begin
  //Erst prüfen ob der Channel noch spielt. ggf. Stop
  if (BASS_ChannelisActive(sounds[0]) = BASS_ACTIVE_PLAYING) then
     Bass_ChannelStop(Sounds[0]);
  //Da der Channel bereits gespielt wurde oder gestopt wurde, ab zurück zum anfang.
  Bass_ChannelSetPosition(Sounds[0],0,BASS_POS_BYTE);
  // BASS_ChannelStop(Sounds[0]);
  BASS_ChannelPlay(Sounds[0], true);
End;

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  //Immer erst prüfen ob der channel läuft. sonst schepperts
  if (BASS_ChannelisActive(sounds[0]) = BASS_ACTIVE_PLAYING) then
     Bass_ChannelStop(Sounds[0]);
  BASS_StreamFree(sounds[0]);
  // Bass.dll freigeben
  BASS_Stop;
  BASS_Free;
end;

Ganzwichtig beim abspielen per Klick: erst prüfen ob der Channel bereits am dudeln ist und ggf. stoppen. Dann den Channel zurück auf den Anfang setzen.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 08:42
den Diff habe ich noch nicht ganz verstanden, aber deine Version geht auch bei mir, nu heists das "Große" Projekt umbauen.

Vielen Dank für deine Hilfe.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 13:00
SO also ich habs nun rausgefunden.

Entscheidend ist :
Delphi-Quellcode:
// If Not Bass_init(-1, 44100, BASS_DEVIDE_DMIX, 0, Nil) Then Begin
  If Not Bass_init(-1, 44100, 0, 0, Nil) Then Begin
laut Bass Wiki braucht man das BASS_DEVIDE_DMIX damit man mehrere Bass Anwendungen gleichzeitig laufen lassen kann.

Habs grad getestet, es geht auch wenn 0 steht .


Zu meinem Glück fehlt nun nur noch, dass ich alle meine Sounds laden kann, und komischerweise kann Bass die beiden im Anhang nicht laden.

Ich denke mal dass es am Bitformat liegt. Kann mir zufällig ein gaanz lieber Mensch das umwandeln, so das ich die laden kann ?
Angehängte Dateien
Dateityp: zip nosound.zip (5,2 KB, 3x aufgerufen)
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 13:23
SO also ich habs nun rausgefunden.

Entscheidend ist :
Delphi-Quellcode:
// If Not Bass_init(-1, 44100, BASS_DEVIDE_DMIX, 0, Nil) Then Begin
  If Not Bass_init(-1, 44100, 0, 0, Nil) Then Begin
laut Bass Wiki braucht man das BASS_DEVIDE_DMIX damit man mehrere Bass Anwendungen gleichzeitig laufen lassen kann.


Dann habe ich deinen Ausgangspost nicht verstanden. Weil das bringe ich damit nicht zusammen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 13:44
Es ging darum das ich eine Wav Laden konnte, diese aber nicht mehrfach hintereinander abspielen.

erst wenn ich eine Andere 2. Wav geladen hatte ging dies.

Und dank Ghostwalker geht es nun.

Ein Vergleich von seinem Source mit meinem ergab aber letztlich, dass der einzige unterschied im Init lag. Früher als ich noch Windows Jünger war hatte ich beim Initialisieren auch eine 0 stehen. Dann beim Wechsel zu Linux muste ein BASS_DEVIDE_DMIX rein.

Und wie mir scheint ist dieses nun nicht mehr nötig => Fall gelöst.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 16:52
Ich denke mal dass es am Bitformat liegt. Kann mir zufällig ein gaanz lieber Mensch das umwandeln, so das ich die laden kann ?
Sehr empfehlenswert: Audacity

http://audacity.sourceforge.net/about/screenshots

http://audacity.sourceforge.net/download/
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Bass v 2.4 Wav Mehrfach abspielen

  Alt 15. Okt 2010, 20:12
Das Vorherige Prüfen ob der Kanal aktive ist, kann ich nachvollziehen und ist ok.

Aber das Setzen der Position finde ich schon merkwürdig, da der 2. Parameter

BASS_ChannelPlay(Sounds[0], true); Nach meinem Verständniss bedeutet : Beginne von vorn.

@toms
danke nu gehen alle Sounds *g*
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 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