这是我的第一个真正的项目。我有一个应用程序,使用AVFoundation捕获几秒钟的视频,将其输出到文档目录中的文件,并允许用户在我们的网站上使用HTTP和PHP脚本上传视频之前预览视频。
所有视频捕捉和预览工作都很完美,但我仍坚持上传视频文件。
我从这个简单的SDK视频中学到了很多东西,该视频展示了如何使用存储在应用程序主包中的视频文件来实现所需的效果。
设置videoData准备上传的教程中的代码原来如下所示:
NSData *videoData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Movie" ofType:@"mov"]];
NSString *urlString = @"http://www.iphonedevnation.com/video-tutorial/upload.php";
我需要上传的视频文件的文件名始终是唯一的,并使用CFUUIDCreateString生成。我将此字符串连接到文档目录的路径,在其末尾添加“.mov”并将其保存到文本文件中以便稍后检索。
这一切都有效,因为我能够从文件中检索文件名并使用它来预览应用程序中其他地方的影片剪辑。
我的路径在NSString中,我尝试转换为NSURL并删除文件后缀以使其与NSData * videoData .........行一起工作,但它不能编译,我得到一个“没有已知的选择器类的方法'dataWithContentsOfFile:ofType。'错误。我的目标是iOS 5,并将Xcode 4.3与ARC和Storyboard结合使用。
我现在已经参加了5个小时的最佳时间,所以希望有人可以提供帮助。我的代码包含了从NSString转换为NSURL的其他地方的提示,如下所示:
NSString *content = [[NSString alloc] initWithContentsOfFile:lastSavedTalentFilenamePath
usedEncoding:nil
error:nil];
NSLog(@"content=%@",content);
//Need to now remove the '.mov' file type identifier
NSString *shortContent= [content substringToIndex:[content length]-4];
NSLog(@"***************shortContent***************%@", shortContent);
NSURL *convertedContent = [NSURL fileURLWithPath:shortContent];
NSLog(@"***************convertedContent***********%@",convertedContent);
NSData *videoData = [NSData dataWithContentsOfFile:convertedContent ofType:@"mov"];];
答案 0 :(得分:0)
没有名为dataWithContentsOfFile的NSData方法:ofType:
可用的方法是:
+ dataWithContentsOfFile:
+ dataWithContentsOfFile:options:error:
两者都将文件位置作为NSString,因此不需要转换为NSURL