Problem mit "CatchSound".

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Ma.Fe
Beiträge: 5
Registriert: 21.05.2006 19:44
Wohnort: Crailsheim (BaWü)

Problem mit "CatchSound".

Beitrag von Ma.Fe »

Bin noch ein relativer Anfänger in Sachen PureBasic. Ich hoffe jemand kann mir bei folgendem Problem helfen:
Ich möchte eine *.wav in mein Programm einfügen.
Habe mit folgendem Code die Datei auch schon eingefügt:

DataSection
Ref:
IncludeBinary "ref440.wav"
EndDataSection

Wenn ich die Datei dann jedoch mit "CatchSound(1, ?Ref)" laden möchte,
um sie dann mit PlaySound(1) abzuspielen, meldet sich CatchSound immer mit Result <> 0 bzw. der Debugger zeigt folgende Meldung an: "#Sound object not initialized". Woran könnte dies liegen?
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Beitrag von bizzl »

Ich hab folgendes probiert, das geht:

Code: Alles auswählen

If Not InitSound():End:EndIf
CatchSound(1,?sound)
PlaySound(1)
Delay(1000)
End
DataSection
sound:
IncludeBinary "C:\Windows\media\chimes.wav"
EndDataSection
Ist evtl. der Pfad zu deiner .wav-Datei falsch?
Kannst du die Datei im WindowsMediaPlayer abspielen?
Hat die Datei vielleicht `ne Macke?

Ich benutze PB4.00!
Müßte aber in 3.94 genauso gehen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Manchmal ist der längeparameter bei CatchSound erforderlich. Das Beispiel von bizzl würde dann so aussehen:

Code: Alles auswählen

If Not InitSound():End:EndIf
CatchSound(1,?sound, ?soundend - ?sound)
PlaySound(1)
Delay(1000)
End
DataSection
sound:
IncludeBinary "C:\Windows\media\chimes.wav"
soundend:
EndDataSection 
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Ma.Fe
Beiträge: 5
Registriert: 21.05.2006 19:44
Wohnort: Crailsheim (BaWü)

Beitrag von Ma.Fe »

@bizzl:
Es war egal, welche Datei ich abspielen wollte, es hat nie geklappt!

Dein Code funktioniert bei mit im Übrigen auch nicht:

Fehlermeldung: "Zeile 1: Garbage at the end of line!"
Ich hab dann die erste Zeile verkürzt auf "InitSound()" ohne
Fehlererkennung. Das Programm ist dann wieder bis PlaySound(1, ?sound)
gelaufen und gab dann wieder den gleichen Fehler wie bei meinem Programm aus. Kann das an meiner älteren PureBasic Version 3.30 liegen?

@ts-soft: Bei mir zeigt es wieder den gleichen Fehler in Zeile eins und noch einen weiteren in Zeile zwei: "incorrect number of Parameters!"
Ich glaub der Fehler liegt wirklich an meiner PureBasic-Version

----------

Hab's jetzt mal mit dem Code probiert:

If InitSound() = 0 :End:EndIf
CatchSound(1,?sound - ?soundend)
PlaySound(1)
Delay(5000)
End
DataSection
sound:
IncludeBinary "C:\Windows\media\chimes.wav"
soundend:
EndDataSection

Ergebnis: "#sound object not initialized!"
Zuletzt geändert von Ma.Fe am 21.05.2006 22:12, insgesamt 1-mal geändert.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

probiere es mal ohne Datasection:

Code: Alles auswählen

If InitSound()= 0
  End
EndIf
CatchSound(1,?sound)
PlaySound(1)
Delay(1000)
End
sound:
IncludeBinary "C:\Windows\media\chimes.wav"
Ansonsten weiß ich nicht, CatchSound gibts seit V 3.00
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Ma.Fe
Beiträge: 5
Registriert: 21.05.2006 19:44
Wohnort: Crailsheim (BaWü)

Beitrag von Ma.Fe »

Klasse! Jetzt hat's geklappt!!!

Ich muss also das "Datasection" weglassen.
Das muss man erstmal rausfinden!

Vielen Dank für die Hilfe!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Aber das End vor dem IncludeBinary nicht vergessen :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Ma.Fe hat geschrieben:Klasse! Jetzt hat's geklappt!!!

Ich muss also das "Datasection" weglassen.
Das muss man erstmal rausfinden!

Vielen Dank für die Hilfe!
Deine Schlußfolgerung ist falsch :wink:
Du musst nicht Datasection weglassen, sondern Dir 'ne
aktuelle PB-Version besorgen.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ma.Fe
Beiträge: 5
Registriert: 21.05.2006 19:44
Wohnort: Crailsheim (BaWü)

Beitrag von Ma.Fe »

Warum soll ich n neues Programm kaufen, wenn das alte Programm auch noch alle Funktionen hat, die ich brauche???
Es hat nicht jeder so nen dicken Geldbeutel, dass er sich immer die neueste Version kaufen kann. Da ich die "Topos-Version" habe, ist für mich n update nämlich (leider) nicht kostenlos!
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Beitrag von bizzl »

Das erste Update ist nicht kostenlos, alle anderen dann schon.
Ich habe seber mit der 3.30 vom Topos-Verlag angefangen, und wenn ich jetzt die 4.00 sehe: Die einmalige(!) Updategebühr hat sich echt gelohnt.
Antworten