MPMediaPlayer 播放本地文件问题
Posted
技术标签:
【中文标题】MPMediaPlayer 播放本地文件问题【英文标题】:MPMediaPlayer playing local file issue 【发布时间】:2014-04-28 08:06:38 【问题描述】:我的应用程序有一个视频录制功能,它成功录制并保存在设备的 Documents 目录中(插入设备时我可以从 iTunes 访问)。我的问题是,我使用无法访问或播放的 APP 制作了用于播放视频的 View UI。
这是我的视频网址 = /var/mobile/Applications/C13AB577-FFB2-4814-BD39-A9835A2DAE28/Documents/WO-00604-140428101904.349.mp4
我的实现代码是:
mediaUrl = [mediaUrl URLByAppendingPathComponent:mediaName];
mediaPlayer.movieSourceType = MPMovieSourceTypeStreaming;
mediaPlayer = [[MPMoviePlayerController alloc] init];
mediaPlayer.controlStyle=MPMovieControlStyleDefault;
mediaPlayer.contentURL = mediaUrl;
mediaPlayer.shouldAutoplay = YES;
mediaPlayer.controlStyle=MPMediaTypeAnyVideo;
[mediaPlayer prepareToPlay];
[mediaPlayer.view setFrame: CGRectMake(0, 0, 360.0, 480.0)];
[self.view addSubview:mediaPlayer.view];
[mediaPlayer play];
debug 中的 mediaURL 具有该值:http://prntscr.com/3e6ohi
【问题讨论】:
确保你的 url 初始化为:NSURL *url = [NSURL fileURLWithPath:filePath] ;
@KudoCC 如果你查看我给链接的截图,你可以看到 NSURL 带有完整路径。
不行,url应该是file:///var...
格式。
@KudoCC,我怎么忘了这么简单的事情!现在它就像一个魅力:)
【参考方案1】:
我使用当前代码成功运行,我认为您应该检查您的 mediaURL:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
basePath = [basePath stringByAppendingString:@"/MyVideo.mp4"];
NSURL *url = [NSURL fileURLWithPath:basePath];
mediaPlayer.contentURL = url;
【讨论】:
以上是关于MPMediaPlayer 播放本地文件问题的主要内容,如果未能解决你的问题,请参考以下文章
我的网络应用程序用户如何单击按钮来播放本地存储的 mp3 文件?
MPMediaPlayer indexOfNowPlayingItem 给出当前索引 9223372036854775807