不在iPhone模拟器中显示视频

时间:2011-10-11 21:15:25

标签: iphone xcode

我在〜/ Library / Application Support / iphone模拟器/ 4.3.2 / Applications / ApplicationGUID / Documents文件夹中有.m4v视频文件。但是当我运行时,我的应用程序崩溃在NSlog中,它显示文件路径为空。

我在applicationDidFinishLaunching中有以下代码:(UIApplication *)application

NSString  *filePath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/Sample_ipod.m4v"]];
NSString  *videoFilepath = [[NSBundle mainBundle] pathForResource:@"VID"  ofType:@"m4v"];
NSLog(@"Filepath is: %@", videoFilepath);

UISaveVideoAtPathToSavedPhotosAlbum(filePath, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
imagePickerController.delegate = self;
imagePickerController.sourceType = 
UIImagePickerControllerSourceTypePhotoLibrary;

imagePickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];    
[window addSubview:imagePickerController.view];

3 个答案:

答案 0 :(得分:0)

检查filePath处的文件是否存在...您的路径可能错误,或者文件已从您的捆绑包中删除,等等。

使用NSFileManager检查是否存在。

如果不能解决问题,请发布有关崩溃的详细信息。崩溃的代码是什么,它给出了什么信息?

答案 1 :(得分:0)

您没有向我们提供崩溃详细信息,因此我认为它因为null filePath而崩溃。

有更好的方法可以获取Documents文件夹,例如:

NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"Sample_ipod.m4v"];

使用[[NSBundle mainBundle] pathForResource:...]不会在Documents中找到文件,这就是文件所在的位置。请使用我上面显示的代码来代替filePath。

答案 2 :(得分:0)

好。我弄清楚了。我没有实现方法(视频:didFinishSavingWithError:contextInfo。这就是为什么,我的应用程序崩溃了。它现在运行良好。