通过URL在iOS中播放视频

时间:2017-04-14 15:48:56

标签: ios objective-c swift avfoundation http-live-streaming

我想通过网址在iOS上播放视频。顺便说一下,我不想使用AVPlayerViewController

我正在使用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。根据{{​​1}}指南,这似乎是正确的。请看红色箭头指向的位置:

enter image description here

但另一个Apple documentation似乎与上述内容相矛盾: enter image description here

我应该直接创建AVFoundation还是直接创建AVURLAsset

如果我直接创建AVPlayerItem,这不是同步的,因此会冻结用户界面吗?

1 个答案:

答案 0 :(得分: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];
    }];
相关问题