4

我在文档文件夹的应用程序本地目录中保存了一个视频文件。我想在用户单击我创建的嵌入式表格视图中的项目时播放文件。我播放视频的代码如下:

NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* path = [documentPath stringByAppendingPathComponent:@"DemoRecording.mp4"];
NSURL* movieURL = [NSURL fileURLWithPath: path];
[player.view setFrame: self.view.bounds];
[self.view addSubView: player.view];
[player play];
MPMoviePlayerViewController* moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL: movieURL];
[self presentMoviePlayerViewControllerAnimated: moviePlayer];

视频不播放。路径正确,文件存在那里。
我知道这是一个重复的问题。我参考了这些链接:
Playing a Downloaded Video from the Documents Directory with Cocoa-Touch
MPMoviePlayer 加载和播放保存在应用文档中的电影
但找不到明确的答案。
请帮我解决这个问题。我正在使用 iOS 5.1.1,如果这有什么改变的话。

编辑:

它确实有效。我忘记将 URL 传递给电影播放器​​。

4

2 回答 2

19

您可以像这样播放文档目录中的视频:-

-(IBAction)playVideo
{
    NSURL *vedioURL;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];
    NSLog(@"files array %@", filePathsArray);        

    NSString *fullpath;

    for ( NSString *apath in filePathsArray )
    {
        fullpath = [documentsDirectory stringByAppendingPathComponent:apath];       
        vedioURL =[NSURL fileURLWithPath:fullpath];
    }
    NSLog(@"vurl %@",vedioURL);
    MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:vedioURL];
    [self presentMoviePlayerViewControllerAnimated:videoPlayerView];
    [videoPlayerView.moviePlayer play];     
}

笔记

请注意不要忘记包含请求的框架或连接代表

于 2013-01-09T12:16:19.047 回答
1

你的错误是你/在DemoRecording.mp4之前错过了

它应该是

NSString* path = [documentPath stringByAppendingPathComponent:@"/DemoRecording.mp4"];

player此外,您在声明之前正在编写语句。

于 2014-03-26T12:54:52.707 回答