2017-04-14 3 views
0

Ich möchte ein Videos auf iOS von einer URL wiedergeben. Ich möchte übrigens AVPlayerViewController nicht verwenden.Video in iOS von einer URL wiedergeben

Ich benutze youtube-dl für Lernzwecke. Dies wird mir die rohe URL eines Videos auf youtube wie:

https://r3---sn-ab5l6nzk.googlevideo.com/videoplayback?upn=3VzVwzrmNT8&lmt=1471130096030949&ratebypass=yes&source=youtube&mime=video%2Fmp4&itag=22&pl=27&ipbits=0&expire=1492204641&sparams=dur,ei,expire,id,initcwndbps,ip,ipbits,ipbypass,itag,lmt,mime,mm,mn,ms,mv,pl,ratebypass,requiressl,source,upn&requiressl=yes&ei=AejwWMOXBIiD8wST6aK4CA&dur=663.394&key=cms1&ip=209.95.50.62&id=o-AAVxdc4Jw2onrtv50WYrfSHZNJAfNfmHE5otD3yIdGhU&signature=10A385D37D76E6695D4F49732B0BB3A0DA4F9700.4D0BB88220F8B24145A92AEB384E86432DB6FFC3&redirect_counter=1&req_id=50cca232f5fba3ee&cms_redirect=yes&ipbypass=yes&mm=31&mn=sn-ab5l6nzk&ms=au&mt=1492182931&mv=m

Ich möchte lernen, wie diese auf iOS zu spielen. Aber ich bin nicht sicher, ob diese URL verweist:

  • eine dateibasierte Asset

ODER

  • Ein HTTP Live Stream

in der URL oben Ich sehe, es gibt eine Fmp4, bedeutet das, es ist ein HTTP-Livestream?

Basierend auf dieser question, heißt es, Sie können nicht direkt eine AVURLAsset verwenden. Basierend auf AVFoundation Leitfaden, scheint das richtig zu sein. Bitte beachten Sie, wo roter Pfeil zeigt:

enter image description here

Aber die anderen Apple documentation scheint die oben zu widersprechen: enter image description here

Soll ich ein AVURLAsset direkt oder ein AVPlayerItem direkt erstellen?

Wenn ich die AVPlayerItem direkt erstellen, ist das nicht synchron und wird daher die Benutzeroberfläche einfrieren?

Antwort

0
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
    NSURL *videoURL = [NSURL URLWithString:"your video url"]; 
    AVPlayer *player = [AVPlayer playerWithURL:videoURL]; 
    AVPlayerViewController *playerViewController = [AVPlayerViewController new]; 
    playerViewController.player = player; 
    [self presentViewController:playerViewController animated:YES completion:^{ 
     [player play]; 
    }]; 
+0

Ich plane nicht mit 'AVPlayerViewController', weil es alle Details abstrahiert. Wie würdest du das ohne "AVPlayerViewController" machen? Soll ich direkt ein AVURLAsset oder direkt ein AVPlayerItem erstellen? – JEL

+0

Nach dem Erstellen von 'AVPlayer' können Sie' AVPlayerLayer' verwenden, um Videos ohne 'AVPlayerViewController ' https://stackoverflow.com/questions/34578839/avplayer-streaming-works-and-yet-it-doesnt abzuspielen – Tiko

Verwandte Themen