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
w4rheart

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

AW: Sounds gleichzeitig abspielen

  Alt 5. Jan 2011, 15:40
Ist das mit der Bass.dll nicht möglich?

Wenn ich über die Suche bass.dll und buffer eingeben finde ich nur Tuts für Webradios oder Ähnliches...
Gehts oder gehts nicht?
Wenn ja, wie heisst das?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

AW: Sounds gleichzeitig abspielen

  Alt 5. Jan 2011, 15:51
Doch, das geht auch mit der Bass.dll bzw. mit der BASSMIX.DLL.

Ich habe nur leider keine Zeit 'n Demo zu bauen (warscheinlich erst am WE).
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
w4rheart

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

AW: Sounds gleichzeitig abspielen

  Alt 6. Jan 2011, 14:57
^ Okay! Wäre sehr nett, wenn Du das machen könntest

MfG
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Sounds gleichzeitig abspielen

  Alt 6. Jan 2011, 19:40
Gerade getestet mit Bass.dll:

BASS_ChannelPlay(SineStream1, True) //oder false
BASS_ChannelPlay(SineStream2, True) //oder false
BASS_ChannelPlay(SineStream3, True) //oder false

geht nicht!
Wenn der nächste Stream gestartet wird, bricht der laufende Stream ab.
  Mit Zitat antworten Zitat
alfold

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

AW: Sounds gleichzeitig abspielen

  Alt 6. Jan 2011, 20:18
Ich weiss zwar nicht was/wie ihr es macht, aber ich kann zur gleichen Zeit die selbe wave abspielen ohne das ein sound abbricht!

Wie wäre es wenn er, das ganze auslagert in einen SoundThread!
Bei jedem Klick der ein Schuss darstellt wird ein neuer Thread gestartet!
Im thread selbst, brauch er nur zu überprüfen ob der sound zu ende ist und gibt den Thread wieder Frei. Eine Rückmeldung zum MainThread benötigt er ja im Prinzip nicht.
So brauch man sich keine Gedanken machen wie oft nun ein Schuss/Explosion kommt!

Soll nur als Anregung dienen

Gruss alfold

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

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

AW: Sounds gleichzeitig abspielen

  Alt 10. Jan 2011, 11:08
^Mit Threads kenne ich mich nicht so gut aus. Funktioniert das nicht einfach mit der BASS.DLL? Oder der Bassmix.dll?
Bei OpenAL ging das ja recht gut mit dem buffern...

MfG
  Mit Zitat antworten Zitat
alfold

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

AW: Sounds gleichzeitig abspielen

  Alt 10. Jan 2011, 14: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 14:32 Uhr)
  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 18:17 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