Video Streamen und PB
Geil, das geht sogar, hier mein Proggy:
Ich sage nur kompillieren udn staunen 
Code: Alles auswählen
Procedure Download()
URLDownloadToFile_(0, "http://test.de/test.wmv", "D:\test.wmv" ,0,0)
Delay (100000)
EndProcedure
If InitMovie() = 0
MessageRequester("Error", "Can't initialize movie playback !", 0)
End
EndIf
aThread = CreateThread(@Download(), 88)
Delay(1000)
If LoadMovie(0, "D:\test.wmv")
OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "PureBasic - Movie")
PlayMovie(0, WindowID(0))
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Else
MessageRequester("Error", "Can't load the movie...", 0)
EndIf

----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
PB 5.20 Beta 10 | Windows 7
- 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
@Joel
Versteh den Sinn Deines Codes nicht
Wenn Du die ganzen Delay sowie den Thread wegläßt, funktionierts
mindestens genauso schnell
Wozu überhaupt die API statt der nativen PB Funktion?
Versteh den Sinn Deines Codes nicht

Wenn Du die ganzen Delay sowie den Thread wegläßt, funktionierts
mindestens genauso schnell

Wozu überhaupt die API statt der nativen PB Funktion?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Code: Alles auswählen
Procedure Download()
URLDownloadToFile_(0, "http://test.de/test.wmv", "D:\test.wmv" ,0,0)
Delay (100000)
EndProcedure
Das andere Delay vor dem Abspielen des Videos ist sozusamen das Caching

----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
PB 5.20 Beta 10 | Windows 7
- 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
URLDownloadToFile_ kehrt doch sowieso erst nach Fertigstellung zurück?
Muß mir mal ne reale Inetadresse zum testen suchen.
Dem Thread fehlt schon mal der Parameter, erster Crash
Muß mir mal ne reale Inetadresse zum testen suchen.
Dem Thread fehlt schon mal der Parameter, erster Crash
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Habe das jetzt etwas Optimiert:
Habe aber noch ein Problem: Wenn ich den Video gerade Abspiele, dann ein Fenster öffne, und dann Fenster dann wieder Minimiere, dann ist das Fenster mit dem Video wieder im Vordergrund aber der Video wird nicht angezeigt. Das Fenster ist dann weiß und erst, wenn ich das Fenster bewege, sehe ich den Video wieder....
Code: Alles auswählen
Procedure Download(x.l)
URLDownloadToFile_(0, "http://www.test.de/test.wmv", "D:\test.wmv" ,0,0)
EndProcedure
If InitMovie() = 0
MessageRequester("Error", "Can't initialize movie playback !", 0)
End
EndIf
aThread = CreateThread(@Download(), 88)
Delay(500)
If LoadMovie(0, "D:\test.wmv")
OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "Film")
PlayMovie(0, WindowID(0))
Repeat
Until WaitWindowEvent(1) = #PB_Event_CloseWindow
EndIf
----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
PB 5.20 Beta 10 | Windows 7
- 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
Bei Deinem Code wird nichts gestreamt, lediglich UrlDownloadToFile nutzt
den Cache, wenn die Datei bereits vorhanden ist.
Ohne "Streaming" ist es genauso schnell da:
den Cache, wenn die Datei bereits vorhanden ist.
Ohne "Streaming" ist es genauso schnell da:
Code: Alles auswählen
TempFile.s = GetTemporaryDirectory() + "test.mpeg"
If InitMovie() = 0
MessageRequester("Error", "Can't initialize movie playback !", 0)
End
EndIf
If Not URLDownloadToFile_(0, "http://www.blitzbasement.net/bank/aliensong.mpeg", TempFile, 0, 0)
If LoadMovie(0, TempFile)
OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "Alien Song")
PlayMovie(0, WindowID(0))
Repeat
Until WaitWindowEvent(1) = #PB_Event_CloseWindow
DeleteFile(TempFile)
EndIf
EndIf
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Mit nativen Befehlen nicht. PB hat nur Funktionen zum abspielen von
Videos von der Festplatte (Movielib) ... willst du Streamen oder sogar
Dateiformate verwenden, die diese Lib nicht unterstützt, bist du
gezwungen auf alternativen um zu steigen. Alternativen nicht zu PB,
sondern alternative Bibliotheken wie FMOD für Audio, das aber auch
Streamen kann
Welche da für Videos gut geeignet ist weis ich aber nicht.
MFG PMV
Videos von der Festplatte (Movielib) ... willst du Streamen oder sogar
Dateiformate verwenden, die diese Lib nicht unterstützt, bist du
gezwungen auf alternativen um zu steigen. Alternativen nicht zu PB,
sondern alternative Bibliotheken wie FMOD für Audio, das aber auch
Streamen kann

Welche da für Videos gut geeignet ist weis ich aber nicht.
MFG PMV