1

Ich streame kleine Filme (1-3MB) von meiner Website in meine iPhone App. Ich habe einen slicehost Webserver, ich denke es ist ein "500MB Slice". Ich bin mir nicht sicher, wie sich das auf die Bandbreite auswirkt, aber das kann ich später herausfinden.MPMoviePlayerContentPreloadDidFinishNotification scheint zuverlässiger als MPMoviePlayerLoadStateDidChangeNotification

Meine Erfahrung mit MPMoviePlayerLoadStateDidChangeNotification ist nicht sehr gut. ich viel zuverlässigere Ergebnisse mit dem alten MPMoviePlayerContentPreloadDidFinishNotification erhalten

Wenn ich einen MPMoviePlayerContentPreloadDidFinishNotification bekommen, wird der Film ohne Stottern spielen, aber wenn ich MPMoviePlayerLoadStateDidChangeNotification verwenden, wird der Film oft abgewürgt.

Ich bin nicht sicher, für welchen Lastzustand zu überprüfen:

enum { MPMovieLoadStateUnknown = 0, MPMovieLoadStatePlayable = 1 < < 0, MPMovieLoadStatePlaythroughOK = 1 < < 1, MPMovieLoadStateStalled = 1 < < 2 , };

MPMovieLoadStatePlaythroughOK scheint zu sein, was ich will (auf der Grundlage der Beschreibung in der Dokumentation):

MPMovieLoadStatePlaythroughOK 
    Enough data has been buffered for playback to continue uninterrupted. 
    Available in iOS 3.2 and later. 

aber das Lastzustand wird dazu in meiner app NIE gesetzt.

Fehle ich etwas? Gibt es einen besseren Weg, dies zu tun?

+0

Ich laufe auf ähnliche Probleme mit diesem. Ich werde Sie wissen lassen, ob ich eine Lösung finde. – logancautrell

Antwort

5

Nur dafür sorgen, dass Sie bemerkt haben es ist eine Flagge, kein Wert?

MPMoviePlayerController *mp = [aNotification object]; 
NSLog(@"LoadState: %i", (NSInteger)mp.loadState); 

if (mp.loadState & MPMovieLoadStatePlaythroughOK) 
{ 
    // Do stuff 
} 
+0

OK Danke, ich werde es irgendwann nochmal anschauen. Hast du gute Erfahrungen mit dem Streaming? – user567889

+0

Geringfügige Probleme, aber die ganze harte Arbeit wird auf Serverseite erledigt. Ich kann mich nicht beschweren, HTTP Live Streaming ist bisher großartig :) – JOM

+0

Ich hatte einen Countdown für das Video, das von einem Webserver geladen wurde. Zuerst habe ich 'MPMovieLoadStatePlayable' verwendet, was zu einer Zeitverzögerung zwischen dem Countdown und dem Video führte. Die Verwendung von 'MPMovieLoadStatePlaythroughOK' hat dieses Problem für mich behoben. Vielen Dank – Besi