1

这是我的第一个真正的项目。我有一个应用程序,它使用 AVFoundation 捕获几秒钟的视频,将其输出到文档目录中的文件,并让用户在使用 HTTP 和我的网站上的 PHP 脚本上传视频之前预览视频。

所有的视频捕获和预览工作完美,但我一直在上传视频文件。

我从这个 simpleSDK 视频中学到了很多东西,它展示了如何使用存储在应用程序主包中的视频文件来实现所需的效果。

教程中设置 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,并使用带有 ARC 和 Storyboards 的 Xcode 4.3。

我已经在这里呆了 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"];];
4

1 回答 1

0

没有名为 dataWithContentsOfFile:ofType 的 NSData 方法:

可用的方法有:

+ dataWithContentsOfFile:
+ dataWithContentsOfFile:options:error:

两者都将文件位置作为 NSString,因此无需转换为 NSURL

于 2012-04-14T13:03:12.687 回答