2017-04-14 117 views
0

我想通過網址在iOS上播放視頻。順便說一句,我不想​​用AVPlayerViewController在iOS中通過網址播放視頻

我使用youtube-dl進行學習。這讓我視頻的原始網址在YouTube上,如:

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

我想學習如何玩這個iOS上。但我不知道這個網址是指:

  • 基於文件的資產

OR

  • 的HTTP實時流

在上述網址,我看到有一個Fmp4,這是否意味着它是一個HTTP實時流?

基於此question,它聲明您不能直接使用AVURLAsset。根據AVFoundation指南,這似乎是正確的。請看到紅色箭頭指向:

enter image description here

但這其他Apple documentation似乎違背上述: enter image description here

我應該直接創建AVURLAssetAVPlayerItem直接?

如果我直接創建AVPlayerItem,是不是同步,因此將凍結用戶界面?

回答

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

我不打算使用'AVPlayerViewController',因爲它會將所有的細節都抽象出來。如果沒有'AVPlayerViewController',你會怎麼做?我應該直接創建一個AVURLAsset還是直接創建一個AVPlayerItem? – JEL

+0

創建'AVPlayer'後您可以使用'AVPlayerLayer'播放視頻而不需要'AVPlayerViewController' https://stackoverflow.com/questions/34578839/avplayer-streaming-works-and-yet-it-doesnt – Tiko