Videos mit Sound abspielen
-
Hei Leute ich würde gerne in einem Win32 Fenster ein Video laden, was dan mit sound abgespielt wird.
Ich hatte es schonmal mit Theoralib, OpenGL und OpenAL für videotexturen gemacht, jedoch brauch ich was einfaches, was sich in einem zweiten Thread abspielen lässt.Hab mir dazu die MCI lib angeguckt und auch schon eine AVI abgespielt , jedoch ohne sound. Gibts da irgendwas anderes, was ihr mir vorschlagen könnt oder wie kann man bei MCI auch sound von der avi mit abspielen. ???
Vielen Dank
-
Videos abspielen ist mit DirectShow recht einfach. Gibt auch genug Beispiele/Tutorials im Internet.
Wobei ich auch keinen Grund sehe, warum bei MCI kein Sound kommen sollte.
Ausser vielleicht dass der passende Audio-Codec nicht vorhanden ist.
Bin mir auch nicht sicher ob man über MCI Video- bzw. Audio-Spuren abspielen kann für die es nur Direct-Show aber keine VfW Codecs gibt.
-
Gibts den irgendwelche libs ,die auch Sound abspielen ?? Es muss nicht avi sein, ist eigendlich egal was
-
DirectShow spielt quasi alles was MediaPlayer auch spielen kann. Mit Sound.
Mit MCI geht es grundsätzlich auch, auch mit Sound, k.A. warum das bei dir nicht klappt.
-
Okey habs jetzt mir DirectShow hinbekommen, richtig gut ohne viel Code
Danke
-
Noch eine Frage zu DShow.In dem Beispiel was ich jetzt habe wird von DShow ein Fenster erstellt mit dem Video.Kann man auch eine HWND übergeben wo dann das Video abgespielt werden soll ??
-
Ja, SetVideoClippingWindow().
-
@Bob Wolfskin
Grundsätzlich kannst du eigentlich immer ein Parent-Window angeben, und die Koordinaten für das Child-Window.Ansonsten kannst du auch den Video Mixing Renderer 9 verwenden, und diesen im Windowless Mode betreiben.
Im Windowless Mode stellst du selbst das Fenster bereit, übergibst ein Handle an den Video Mixing Renderer 9, und der verwendet es dann (=erstellt kein eigenes mehr).ps: mit dem EVR (Enhanced Video Renderer, ab Vista verfügbar bzw. unter XP wenn man ein bestimmtes .NET Framework installiert hat) geht es sicher auch. Den hab' ich allerdings noch nie verwendet.