Iphone 播放应用程序中保存的视频文件';s文件目录
我有一个视频文件保存在documents文件夹中我应用程序的本地目录中。我想在用户单击我创建的嵌入表视图中的项时播放该文件。我播放视频的代码如下:Iphone 播放应用程序中保存的视频文件';s文件目录,iphone,ios,objective-c,ios4,mpmovieplayercontroller,Iphone,Ios,Objective C,Ios4,Mpmovieplayercontroller,我有一个视频文件保存在documents文件夹中我应用程序的本地目录中。我想在用户单击我创建的嵌入表视图中的项时播放该文件。我播放视频的代码如下: NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString* path = [documentPath stringByAppendingPath
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];
视频无法播放。路径正确,并且文件存在于那里我知道这是一个重复的问题。我已经参考了这些链接:
但是找不到一个明确的答案
请帮我解决这个问题。我使用的是iOS 5.1.1,如果这有什么变化的话 编辑:
它确实有效。我忘了将URL传递给电影播放器。您可以通过以下方式从文档目录播放视频:-
-(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];
}
注意
请注意,不要忘记包括请求的框架或连接委托
您的错误是在DemoRecording.mp4之前错过了
/
应该是
NSString* path = [documentPath stringByAppendingPathComponent:@"/DemoRecording.mp4"];
在声明之前,您还需要编写
player
语句 如果可以,请使用web视图显示文件。这很简单,你在哪里把movieURL
传递给了播放器
?你是对的,我没有把URL传递给播放器。我对代码进行了编辑,将其包括在内,并且效果良好。真诚的道歉。