ios - 在 iOS 中通过 URL 播放视频

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

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

我使用 youtube-dl 来进行学习。这让我获得了 YouTube 上视频的原始 URL,例如:

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 上玩这个游戏。但我不确定这个网址是否指的是:

  • 基于文件的 Assets

或者

  • HTTP 直播

在上面的网址中,我看到有一个 Fmp4,这是否意味着它是 HTTP 直播?

基于此question ,它指出您不能直接使用 AVURLAsset。根据 AVFoundation 指南,这似乎是正确的。请查看红色箭头所指的位置:

enter image description here

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

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

如果我直接创建 AVPlayerItem,这不是同步的吗?因此会卡住 UI?

最佳答案

[[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];
    }];

关于ios - 在 iOS 中通过 URL 播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43414921/

相关文章:

ios - 如何对 UIPageViewController 处理的页面内的容器进行动画处理,并且该动画与页面滑动(页面更改)相关?

iOS Alamofire 超时且无网络连接

ios - Oauth1 iOS 从 API 获取数据

iphone - 如何在iOS应用程序中在Google Plus上发布图像

ios - 为什么我的 CGImage 在 setNeedsDisplay 后不能正确显示

objective-c - 来自 objective-c 的 swift 中的可选枚举

iOS - 在应用程序内保存视频

ios - 设置 nil UserDefaults 时出现 NSInvalidArgumentException

ios - 长按手势识别问题

objective-c - UIKit : [UIViewController mutableChildViewControllers] crash?