使用AVPlayer从远程URL播放视频

3

我正在尝试使用AVPlayer从远程URL播放视频。这是一个非常简单的设置:加载视图控制器,并在viewDidLoad中使用url设置AVPlayer并播放它。这是我的代码,在viewDidLoad中:

NSString *urlString = @"http://download.wavetlan.com/SVV/Media/HTTP/MOV/ConvertedFiles/MediaConvert/MediaConvert_test4_1m10s_MPEG4SP_VBR_383kbps_320x240_30fps_AACLC_VBR_60kbps_Stereo_44100Hz.mov";
NSURL *url = [NSURL fileURLWithPath:urlString];
self.item = [AVPlayerItem playerItemWithURL:url];
self.player = [[AVPlayer alloc] initWithPlayerItem:self.item];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.item];
playerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
playerLayer.backgroundColor = [UIColor greenColor].CGColor;
[self.view.layer addSublayer:playerLayer];
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.player play];
self.player.actionAtItemEnd = AVPlayerActionAtItemEndNone;

但是当视图加载时,什么都没有发生。屏幕只是绿色的(因为我设置了playerLayer为绿色),所以我知道它在那里。它只是没有播放。您也可以测试urlString,它是一个有效的url。文件大小为3.8 MB。我从这里的一些测试URL中获取了url:http://download.wavetlan.com/SVV/Media/HTTP/http-mov.htm 所以,我已经初始化了播放器、playerLayer、item和URL是正确的。但是屏幕上没有任何东西出现。我在调试器中注意到的一件事是NSURL和url的实际字符串在结尾处不同。所以也许那可以帮助一些,但我不确定如何改变它。这是一张照片:

enter image description here

另外,我正在iOS 8.4设备上测试此功能,因此我知道不是应用程序传输安全阻止了HTTP地址。

我可能做错了什么??任何帮助都将不胜感激。谢谢。

1个回答

11
将此代码更改为:
NSURL *url = [NSURL URLWithString:urlString];
原代码使用的是fileURLWithPath为从本地文件系统加载URL。如果要加载来自网络的URL,则应使用URLWithString

你能帮我处理这种类型的URL吗?请查看 http://xyz:8080/Restful/api/fileupload/attachments/918882651339/6FMFQM.MOV - Chandan Jee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接