AVPlayer不能播放本地视频

8

我已经困扰了数小时...... 我正在尝试使用AVPlayer播放我下载并保存的视频,但没有任何显示。 最让我惊讶的是,如果我使用苹果提供的用于测试HTTP实时流媒体的示例URL ,那么这个视频就可以播放。(http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8) 然而,当我将URL更改为本地文件路径时,视频无法播放。我用iPhone录制了视频,并验证了格式(.mov)可播放。以下是代码块:

AVPlayer *mPlayer = [[AVPlayer alloc] init];
//mPlayer = [mPlayer initWithURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]];
mPlayer = [mPlayer initWithURL:filePath];
playerLayer = [AVPlayerLayer playerLayerWithPlayer:mPlayer];
[[[self view] layer] insertSublayer:playerLayer atIndex:3];
[playerLayer setFrame:self.view.bounds];
[mPlayer play];
NSLog(@"Playing video at: %@", filePath);

示例输出: 正在播放视频: /var/mobile/Applications/B298EE7D-D95D-4CCC-8466-2C0270E2071E/Documents/394665262.174180.mov

编辑: 通过使用[NSURL fileURLWithPath:local_url_string]已解决问题。


2
filePath 是如何创建的? - Martin R
5
谢谢Martin!我使用fileURLWithPath解决了它。 - eldermao
3
不应向同一对象发送多个init/init…消息。你应该只在第一行创建AVPlayer,如[[AVPlayer alloc] initWithURL:[NSURL fileURLWithPath:…]] - Peter Hosey
1个回答

5

这是一小段代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"splash" ofType:@"mp4"];
NSURL *videoURL = [NSURL fileURLWithPath:path];
AVPlayer* player = [AVPlayer playerWithURL:videoURL];

1
我的视频在本地服务器上,我想在我的设备上播放它。 - Raksha Saini
@Rex 只需要更改 NSURL *videoURL = [NSURL URLWithString:@"http://cdn3.viblast.com/streams/dash/vod-bunny/XXX.mp4"]; - WINSergey
1
我正在使用这个。在模拟器中它完美地工作。但是当我在真实设备上运行时,它显示错误。请帮忙。 - Raksha Saini
@Rex,你能否上传项目的一部分到Github上作为示例?我想帮助你,但我真的不明白AVPlayer的问题在哪里。 - WINSergey
@WINSergery 我的问题看起来像这样 问题 - Raksha Saini
显示剩余2条评论

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