Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi wave/mp3 Datei aus Ressource laden und spielen... (https://www.delphipraxis.net/164519-wave-mp3-datei-aus-ressource-laden-und-spielen.html)

TitanNano 16. Nov 2011 17:13

wave/mp3 Datei aus Ressource laden und spielen...
 
Hallo,

ich würde gerne eine wave oder mp3 Datei aus einer Ressource Datei laden und dann abspielen.
Ich habe zwar diesen Code:
Delphi-Quellcode:
  handle:= FindResource(HInstance, 'STEP_SOUND', 'WAV');
  handleX:= LoadResource(HInstance, handle);
  sndPlaySound(LockResource(handleX), SND_ASYNC or SND_MEMORY or SND_RESOURCE);
  UnlockResource(handleX);
  FreeResource(handleX);
aber es wird einfach nichts gespielt :-(

Gibt es da noch bessere Methoden, oder was mache ich falsch??

mfg. TitanNano

blackfin 16. Nov 2011 17:18

AW: wave/mp3 Datei aus Ressource laden und spielen...
 
Vermutung, ohne jetzt die sndPlaySound()-Routine zu kennen:
Du forderst das Handle an, startest das Abspielen (was sicher "nicht-blockierend" ist) und gibst das Handle gleich wieder frei.
Somit reisst du der sndPlaySound()-Routine das Handle gleich wieder weg.
Ich schätze, du musst über Event-Routinen abfragen, wann der sound zuende ist und dann erst freigeben.

Ohne Gewähr..ist mir nur beim Drüberschauen gerade aufgefallen.

TitanNano 16. Nov 2011 17:22

AW: wave/mp3 Datei aus Ressource laden und spielen...
 
ich hab jetzt mal das freigeben auskommentiert.
Delphi-Quellcode:
  handle:= FindResource(HInstance, 'STEP_SOUND', 'WAV');
  handleX:= LoadResource(HInstance, handle);
  sndPlaySound(LockResource(handleX), SND_ASYNC or SND_MEMORY or SND_RESOURCE);
  //UnlockResource(handleX);
  //FreeResource(handleX);
bringt aber nichts...

Luckie 16. Nov 2011 17:24

AW: wave/mp3 Datei aus Ressource laden und spielen...
 
Hilfe lesen hilft: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx über einen Link kommt man dann hier hin: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx wo steht:
Zitat:

SND_RESOURCE
The pszSound parameter is a resource identifier; hmod must identify the instance that contains the resource.
For more information, see Playing WAVE Resources.
Es dürfte sich wohl um das Modulhandle (LoadLibrary zum Beispiel oder HInstance) handeln und nicht um ein Handle auf eine Ressource. Und wenn man auf den Link klickt, ladet man hier: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx auf einer Seite mit Beispielen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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