AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sounds gleichzeitig abspielen

Ein Thema von w4rheart · begonnen am 18. Dez 2010 · letzter Beitrag vom 11. Jan 2011
Antwort Antwort
Seite 5 von 5   « Erste     345   
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#41

AW: Sounds gleichzeitig abspielen

  Alt 10. Jan 2011, 15:28
jo, geht mit der Bass.dll

Delphi-Quellcode:
private
     schus1, schus2, schus3: HSTREAM;
    song1: string;

....
....
procedure TForm1.FormCreate(Sender: TObject);
begin
    if not BASS_Init(1, 44100, 0, Handle, nil) then
     Application.Terminate;

   song1:= 'g:\Musik\PLAYER1\schuss.wav';
        
   schus1:= BASS_StreamCreateFile(False, pchar(song1),0, 0,BASS_SAMPLE_SOFTWARE
                         {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
   schus2:= BASS_StreamCreateFile(False, pchar(song1),0, 0, BASS_SAMPLE_SOFTWARE
                         {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
   schus3:= BASS_StreamCreateFile(False, pchar(song1),0, 0, BASS_SAMPLE_SOFTWARE
                         {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
end;

procedure TForm1.btnplay1Click(Sender: TObject);
begin
    if (BASS_ChannelIsActive(schus1) = 0) then
       BASS_ChannelPlay(schus1, False)
    else
    if (BASS_ChannelIsActive(schus2) = 0) then
       BASS_ChannelPlay(schus2, False)
    else
    if (BASS_ChannelIsActive(schus3) = 0) then
       BASS_ChannelPlay(schus3, False)
end;
....
....
So hab ich es mal umgesetzt und es funct. Wenn es sein muss must Du natürlich mehr HSTREAM (schus) erzeugen. Es kommt darauf an wie lang die wav ist und damit Du genügend hast wenn 3 nicht reichen!

Besser währe natürlich ein soundthread

gruss alold

Geändert von alfold (10. Jan 2011 um 15:32 Uhr)
  Mit Zitat antworten Zitat
w4rheart

Registriert seit: 16. Mär 2010
53 Beiträge
 
#42

AW: Sounds gleichzeitig abspielen

  Alt 10. Jan 2011, 23:59
Hallo alfold!
Danke für den Beispielcode.
Ich hab das ganze nun mal so verwendet wie du es gezeigt hast, allerdings höre ich nix!

Hier ein Auszug aus meinem Code:

Delphi-Quellcode:
unit mTSound;
..

  TSound = class
  constructor create;
  //destructor destroy; override;
  private
    schuss1, schuss2, schuss3 : HSTREAM;
    explosion1, explosion2, explosion3 : HSTREAM;
    schuss_path, explosion_path : string;

    procedure play_schuss;
    procedure play_explosion;
  public
    procedure playfile( pname : string);
  end;

..

constructor TSound.create;
begin
  if not BASS_Init(1, 44100, 0, 0, nil) then //HANDLE kannte derbei mir nicht, habs auf 0 gesetzt. Ist das der Fehler?
  begin
    showmessage('Bass.dll konnte nicht initialisiert werden!');
    exit;
  end;

   schuss_path := '/sounds/laserbeamz.wav';
   explosion_path := '/sounds/bomb.wav';

   schuss1 := BASS_StreamCreateFile(False, pchar(schuss_path),0, 0,BASS_SAMPLE_SOFTWARE
     {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
...

   explosion1 := BASS_StreamCreateFile(False, pchar(explosion_path),0, 0,BASS_SAMPLE_SOFTWARE
     {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
..
end;

procedure TSound.playfile ( pname : string );
begin
  if pname = 'explosionthen play_explosion
  else if pname = 'schussthen play_schuss;
end;

procedure TSound.play_explosion;
begin
  if (BASS_ChannelIsActive(explosion1) = 0) then
     BASS_ChannelPlay(explosion1, False) //Wird afgerufen
  else
  if (BASS_ChannelIsActive(explosion2) = 0) then
     BASS_ChannelPlay(explosion2, False)
  else
...
end;

procedure TSound.play_schuss;
begin
...
end;
BASS_ChannelPlay wird auch aufgerufen, habe es Schritt für Schritt mit dem Compiler zur Laufzeit durchgespielt.
Warum hör ich nichts?

MfG

Geändert von w4rheart (11. Jan 2011 um 00:08 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#43

AW: Sounds gleichzeitig abspielen

  Alt 11. Jan 2011, 09:55
Is ja schön das Du ne eigen Classe dafür erstellst, ist aber nicht Nötig.
Handle ? Eigentlich must Du es angeben !? Da ich noch nie ne eigen classe mit der Bass.dll erstellt habe kann ich es nicht sagen Kann auch sein das in der uses was fehlt!?
Frage: stimmt den der Pfad?
schuss_path, explosion_path : string;
schuss_path := '????/sounds/laserbeamz.wav';
explosion_path := '????/sounds/bomb.wav';

Besser währe der Aufwand mit Thread.
Gruss alfold

P.S. als kleine Idee so am rande. Wenn Du jetzt noch mit Lautstärke und Panorama arbeitest, kannst Du sogar noch Entfernung und Ort bestimmen wo der sound herkommt.

Geändert von alfold (11. Jan 2011 um 10:07 Uhr)
  Mit Zitat antworten Zitat
w4rheart

Registriert seit: 16. Mär 2010
53 Beiträge
 
#44

AW: Sounds gleichzeitig abspielen

  Alt 11. Jan 2011, 15:26
ja das war der Fehler peinlich^^
Dachte der würde dann evtl eine Fehlermeldung auswerfen...

Es funktioniert nun alles, Danke nochmal für deine Hilfe alfold!

Bis demnächst

Mit freundlichen Grüßen
w4rheart
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#45

AW: Sounds gleichzeitig abspielen

  Alt 11. Jan 2011, 15:29
Schau dir mal die Bass Hilfe an, da stehen die Fehlercode drin und wie Du sie abfangen kannst

Gruss alfold
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

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

AW: Sounds gleichzeitig abspielen

  Alt 11. Jan 2011, 16:41
also ne Klasse mit der BassDLL gibts unter Hier im Forum suchenBassPlayerEx. Wie das da gemacht wird, müsste ich nachschauen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 23:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz