Sound abspielen funktioniert nicht

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Sound abspielen funktioniert nicht

Beitrag von AND51 »

Hallo!

Code: Alles auswählen

DataSection
	musik: IncludeBinary "C:\Dokumente und Einstellungen\André\Desktop\CIA MP3 16 bit.mp3"
EndDataSection

InitSound()
CatchSound(1, ?musik)
PlaySound(1)
Mit diesem Code versuche ich eine Musikdatei abzuspielen. Ich weiß zwar nicht, ob PB von Hause aus MP3 unterstützt, aber auch mit WAV Dateien funktioniert es nicht.
Habe auch schon InitMovie() versucht, aber da gibt es kein CatchMovie() und mir wär's halt lieb, wenn ich die Musikdatei mit in die EXE packen kann.

Hat einer ne Idee oder sieht jemand, was ich falsch gemacht habe?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Mp3 musst du auf jeden Fall als Video laden,
und dann ( vieleicht unsichtbar) abspielen.
Als Sound direkt geht es leider nicht.
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 »

Mit CatchSound funktioniert nur wav, entgegen der Hilfe leider auch kein ogg

Ausserdem wir in Deinem Code nichts überprüft, wie willste also den Fehler finden? Statt Fehlerüberprüfung im Code, lieber im Forum fragen :freak:

//Nachtrag:
Die mp3 als benutzerdefinierte Resource in die Exe einbinden und per MCI abspielen sollte kein Problem darstellen, solange der mp3-Codec installiert ist. Ist aber dann Windows Only
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
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Oh, 2 Antworten schon? Danke! :allright:
Habe mich gerade nochmal im Forum umgesehen und anhand folgendem Code ist mir klargeworden, warum mein Code nicht funzt:

Code: Alles auswählen

InitSound() 
LoadSound(0, "Pfiff_Abfahrt1.wav") 
PlaySound(0, 1) 
Delay(20000)
PlaySound() scheint ein Befehl zu sein, der parallel zum Programm weiterläuft. Ich dachte, der Befehl hält die Programmausführung so lange an, bis der Befehl fertig bearbeitet (hier: bis das Lied fertig abgespielt wurde) wurde.

@ TS-Soft: Deinen Nachtrag verstehe ich nicht... Kannst du mir das nochmal erklären? Ist absolut nicht schlimm, wenn es "Windows only" ist, im Gegenteil.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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 »

AND51 hat geschrieben: @ TS-Soft: Deinen Nachtrag verstehe ich nicht... Kannst du mir das nochmal erklären? Ist absolut nicht schlimm, wenn es "Windows only" ist, im Gegenteil.
Ich sehe immer noch keinerlei Überprüfung in Deinem Code, vielleicht solltest Du mal in der Hilfe unter If nachschlagen.

Zu meinem Nachtrag: MSDN ist Dein Freund. Zur Nutzung von MCI gibts diverse Beispiele im CodeArchiv usw.
Das Format von Resourcescripts (*.rc) findeste in der MSDN, genauso wie die Nutzung von RC_DATA.
Ansonsten findest Du in der IDE die Möglichkeit, so eine Resource Deinem Programm hinzuzufügen.
Vielleicht recherchierst Du mal selber ein bissel, das gehört beim Programmieren nämlich dazu, genauso wie die Fehlerprüfung, die niemals fehlen sollte.
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
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Achso.

Ja, wenn ich das in mein Programm einbaue, füge ich natürlich If-Abfragen ein.
Um das hier im Forum übersichtlich zu halten, damit jeder sofort sieht, worauf es ankommt, gehe ich vom idealfall aus, nämlich, dass alles funktioniert und keine Abfragen nötig sind.

Ja und nach diesem MCI werde ich nochmal schauen, danke.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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 »

AND51 hat geschrieben: Ja und nach diesem MCI werde ich nochmal schauen, danke.
Wenn Du dann etwas Code geschrieben hast, mit Fehlerprüfung, kannste gerne nochmal nachfragen :wink:

//Nachtrag:
Für die Resourcen hab ich mal ne Lib geschrieben, findeste hier:
http://purebasic.ts-soft-online.de/dl/rcdata.zip

Sind aber keine Beispiele mit MP3 bei.
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
Antworten