首页 文章

使用AVPlayer从远程URL播放视频

提问于
浏览
2

我正在尝试使用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设置为绿色),所以我知道's there. It just isn' t . 您也可以测试该urlString,它是一个有效的URL . 文件大小为3.8 MB . 我从这里获得了一些测试网址的网址:http://download.wavetlan.com/SVV/Media/HTTP/http-mov.htm

所以,我已经初始化了播放器,播放器层,项目,并且URL是正确的 . 但屏幕上没有任何内容 . 我在调试器中注意到的一件事是NSURL和url的实际字符串在结尾处是不同的 . 也许这可能会有所帮助,但我不知道如何改变它 . 这是一张照片:

enter image description here

另外,我在iOS 8.4设备上测试它,所以我知道阻止HTTP地址的app传输安全性不是 .

我在这里可能做错了什么?任何帮助表示赞赏 . 谢谢 .

1 回答

  • 8

    改变这个:
    NSURL *url = [NSURL fileURLWithPath:urlString];
    对此:
    NSURL *url = [NSURL URLWithString:urlString];

    fileURLWithPath 通常用于从本地文件系统加载URL,当您使用网络中的URL时应该使用 URLWithString

相关问题