Denselben Sound mehrmals gleichzeitig abspielen.
Denselben Sound mehrmals gleichzeitig abspielen.
Wenn ich einen Sound lade, ihn Abspiele und dann nach kurzer Zeit wieder abspiele, wird das erste Abspielen abgebrochen. Dies führt oft zu nicht gerade schönen Soundschnipseln.
Nunja wie könnte ich das verhindern?
Ich habe mir erst überlegt, die Soundeffekte beim abspielen mit catchsound zu laden, abzuspielen und dann zu löschen. Ich habe mit den ganzen Catch... befehlen noch nichts gemacht, aber wenn ich mich nicht irre, funktioniert es ja so, dass die Sachen gleich mit der .exe in den Speicher geladen werden und somit recht schnell zugriffsbereit sein sollten?
Aber da stellt sich trotzdem ein Problem: Man kann nicht ermitteln, ob der Soundeffekt schon zu ende abgespielt wurde oder nicht. Man könnte es mit einem Umweg übergehen, indem man die Länge zu jedem Soundeffekt in einer Datei aufschreibt und dann eine liste mit ner Laufvariable für die Sounds erstellt, die beim ablaufen dieser, gelöscht werden.
Oder gibt es da einen Sinvolleren Weg, z. B. mit Movies evtl.?
Nunja wie könnte ich das verhindern?
Ich habe mir erst überlegt, die Soundeffekte beim abspielen mit catchsound zu laden, abzuspielen und dann zu löschen. Ich habe mit den ganzen Catch... befehlen noch nichts gemacht, aber wenn ich mich nicht irre, funktioniert es ja so, dass die Sachen gleich mit der .exe in den Speicher geladen werden und somit recht schnell zugriffsbereit sein sollten?
Aber da stellt sich trotzdem ein Problem: Man kann nicht ermitteln, ob der Soundeffekt schon zu ende abgespielt wurde oder nicht. Man könnte es mit einem Umweg übergehen, indem man die Länge zu jedem Soundeffekt in einer Datei aufschreibt und dann eine liste mit ner Laufvariable für die Sounds erstellt, die beim ablaufen dieser, gelöscht werden.
Oder gibt es da einen Sinvolleren Weg, z. B. mit Movies evtl.?
besucht http://www.dark-matter-soft.de
wenn ich dich richtig verstanden habe suchst du danach:
nach dem 2. parameterSyntax
PlaySound(#Sound [, Modus])
Beschreibung
Startet das Abspielen des angegebenen '#Sound's. 'Modus' ist optional und kann folgenden Wert annehmen:
0: Spielt den Sound nur einmal (Standard-Wert, wenn 'Modus' weggelassen wird)
1: Spielt den Sound fortwährend (in einer Endlos-Schleife). Nicht verfügbar unter Linux!
Re: Denselben Sound mehrmals gleichzeitig abspielen.
nein, nicht ganz

Ich will also, dass sich der selbe Sound sozusagen überlagert.
Damit meine ich natürlich dass das erste Abspielen des Sounds noch nicht zuende warSerge hat geschrieben:Wenn ich einen Sound lade, ihn Abspiele und dann nach kurzer Zeit wieder abspiele, wird das erste Abspielen abgebrochen. Dies führt oft zu nicht gerade schönen Soundschnipseln.
Ich will also, dass sich der selbe Sound sozusagen überlagert.
besucht http://www.dark-matter-soft.de
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
also, der bricht wohl ab, weil er halt nur einmal im speicher steht
wenn du sicher bist, dass er sich überschneiden KANN, dann lade doch einfach 2-4 verschiedene sound nummern mit dem gleichen wav, und zähl ne variable hoch, welcher als nächster gestartet wird
braucht natürlich auch mehr speicher, vielleicht hat jemand anders noch ne bessere idee
wenn du sicher bist, dass er sich überschneiden KANN, dann lade doch einfach 2-4 verschiedene sound nummern mit dem gleichen wav, und zähl ne variable hoch, welcher als nächster gestartet wird
braucht natürlich auch mehr speicher, vielleicht hat jemand anders noch ne bessere idee
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Yoa das wäre sicher auch ne alternative, evtl. sogar besser als die von mir aufgeführte.
besucht http://www.dark-matter-soft.de
Solltest du vorhaben 2 sounds - vornehmlich die selben - parallel laufen zu lassen, ohne dass der eine den anderen abbricht oder sonstwas passiert...
Gut gemeinter rat: nimm lieber Fmod...
Ich habs selbst schon versucht, kollega von mir auch, wir haben bisher keine Lösung mit PB bordmitteln gefunden (was nicht heisst dass es keine gibt), und sind deswegen auf Fod umgestiegen...
Willst du das ganze vermarkten solltest du dir mal audiere anguggen...
Beide in jedem fall besser und mit mehr funktionen versehen als die integrierten PB commands.
Mfg
RaVeN
Gut gemeinter rat: nimm lieber Fmod...
Ich habs selbst schon versucht, kollega von mir auch, wir haben bisher keine Lösung mit PB bordmitteln gefunden (was nicht heisst dass es keine gibt), und sind deswegen auf Fod umgestiegen...
Willst du das ganze vermarkten solltest du dir mal audiere anguggen...
Beide in jedem fall besser und mit mehr funktionen versehen als die integrierten PB commands.
Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Kenne mich mit exthernen Soundengines nicht so aus.
Da ich schon gerne alle Rechte an meinen Projekten haben möchte, käme da wohl nur Audiere in Frage?
Gibt es davon ne Extra library für PB oder wie baut man es ein?
bzw. Kann mir jemand sagen ob die Idee, die ich im ersten Posting aufgeführt habe funktionieren würde?
Da ich schon gerne alle Rechte an meinen Projekten haben möchte, käme da wohl nur Audiere in Frage?
Gibt es davon ne Extra library für PB oder wie baut man es ein?
bzw. Kann mir jemand sagen ob die Idee, die ich im ersten Posting aufgeführt habe funktionieren würde?
besucht http://www.dark-matter-soft.de
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Serge hat geschrieben:Kenne mich mit exthernen Soundengines nicht so aus.
Da ich schon gerne alle Rechte an meinen Projekten haben möchte, käme da wohl nur Audiere in Frage?
Gibt es davon ne Extra library für PB oder wie baut man es ein?
Info von PureArea.net / DLL+Tools: hat geschrieben:DLL-Komplettpaket "Audiere Sound System" mit vielen Beispielen zum Abspielen verschiedenster Musikformate (aiff, mp3, ogg, flac, mod, s3m, xm, it, wave), Erstellen eigener Töne & Geräusche, Effekte u.v.m. - Freeware (LGPL) - Homepage des Entwicklers
Da es langsam sehr viele 'User-Libs' und 'DLL's + Tools' (wo ist eigentlich der Unterschied? Auf beiden Seiten findet man z.B. DLL's) in der PureArea gibt, sollte man hier vielleicht auch mal Kategorien (Sound, Grafik...) einführen, denn wenn man zum Beispiel Libs zum Thema Sound sucht, muss man quasi alles durchlesen, auf beiden Seiten (ich bin einfach faul
)
Es reicht ja schon ein kleines Symbol, es muss ja nicht mal ne aufwändige Such- oder Filterfunktion sein... ansonsten kann ich zur Area nur sagen: Wow, was für ne Fundgrube (nicht zu vergessen das Codearchiv)!
Es reicht ja schon ein kleines Symbol, es muss ja nicht mal ne aufwändige Such- oder Filterfunktion sein... ansonsten kann ich zur Area nur sagen: Wow, was für ne Fundgrube (nicht zu vergessen das Codearchiv)!
Hm, ich habe jetzt mal versucht Audiero einzubauen,
aber sobald ich bei einem meiner Soundeffect den Befehl "play()" aufrufe, stürtzt das Programm ab.
Ich habe auch mal versucht den Beispielcode zu verändern.
Funktioniert einwandfrei
Veränderte Version:
Ich habe die Variablen in eine Structur getan.
Jetzt stürtzt das Programm ebenfalls ab.
(erst bei play, das laden und erstellen des sounds geht einwandfrei)
-> Somit kein dynamisches Arbeiten mit den Sounds möglich?
Oder woran könnte es liegen?
aber sobald ich bei einem meiner Soundeffect den Befehl "play()" aufrufe, stürtzt das Programm ab.
Ich habe auch mal versucht den Beispielcode zu verändern.
Code: Alles auswählen
If OpenLibrary(#audiere,"audiere.dll")=0
MessageRequester("","Error audiere.dll",0):End:EndIf
; opens a device
AudioDeviceObject.AudioDevice=AUDIERE_OpenDevice(@"winmm",@"buffer=1000,rate=44100")
If AudioDeviceObject=0
MessageRequester("","Error AUDIERE_OpenDevice:",0):End:EndIf
; opens a music
SampleSourceObject.sampleSource= AUDIERE_OpenSampleSource(@"wechsel.wav",#FF_AUTODETECT)
If SampleSourceObject=0
MessageRequester("","Error AUDIERE_OpenSampleSource",0):End:EndIf
; open a SoundEffect Object
SoundEffectObject.SoundEffect=AUDIERE_OpenSoundEffect(AudioDeviceObject,SampleSourceObject,#MULTIPLE)
If SoundEffectObject=0
MessageRequester("","Error OpenSound",0):End:EndIf
; /**
; * Trigger playback of the sound. If the SoundEffect is of type
; * single, This plays the sound If it isn't playing yet, and
; * starts it again If it is. If the SoundEffect is of type
; * multiple, play() simply starts playing the sound again.
SoundEffectObject\play() ; play the soundEffect
MessageRequester("","Press OK to play a second sound because the SoundEffect is #MULTIBLE",0)
SoundEffectObject\play() ; play the soundEffect
Veränderte Version:
Code: Alles auswählen
If OpenLibrary(#audiere,"audiere.dll")=0
MessageRequester("","Error audiere.dll",0):End:EndIf
structure test
SampleSourceObject.sampleSource
SoundEffectObject.SoundEffect
endstructure
dim test.test(0)
; opens a device
AudioDeviceObject.AudioDevice=AUDIERE_OpenDevice(@"winmm",@"buffer=1000,rate=44100")
If AudioDeviceObject=0
MessageRequester("","Error AUDIERE_OpenDevice:",0):End:EndIf
; opens a music
test(0)\SampleSourceObject= AUDIERE_OpenSampleSource(@"wechsel.wav",#FF_AUTODETECT)
If SampleSourceObject=0
MessageRequester("","Error AUDIERE_OpenSampleSource",0):End:EndIf
; open a SoundEffect Object
test(0)\SoundEffectObject=AUDIERE_OpenSoundEffect(AudioDeviceObject,test(0)\SampleSourceObject,#MULTIPLE)
If SoundEffectObject=0
MessageRequester("","Error OpenSound",0):End:EndIf
; /**
; * Trigger playback of the sound. If the SoundEffect is of type
; * single, This plays the sound If it isn't playing yet, and
; * starts it again If it is. If the SoundEffect is of type
; * multiple, play() simply starts playing the sound again.
test(0)\SoundEffectObject\play() ; play the soundEffect
MessageRequester("","Press OK to play a second sound because the SoundEffect is #MULTIBLE",0)
test(0)\SoundEffectObject\play() ; play the soundEffect
Jetzt stürtzt das Programm ebenfalls ab.
(erst bei play, das laden und erstellen des sounds geht einwandfrei)
-> Somit kein dynamisches Arbeiten mit den Sounds möglich?
Oder woran könnte es liegen?
besucht http://www.dark-matter-soft.de
