1

これは私の最初の本格的なプロジェクトです。AVFoundation を使用して数秒間のビデオをキャプチャし、これをドキュメント ディレクトリのファイルに出力し、HTTP および PHP スクリプトを使用して Web サイトにアップロードする前に、ユーザーがビデオをプレビューできるようにするアプリがあります。

すべてのビデオ キャプチャとプレビューは問題なく動作しますが、ビデオ ファイルのアップロードに行き詰まります。

アプリのメイン バンドルに保存されているビデオ ファイルを使用して目的の効果を実現する方法を示すこの 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........line で動作するようにしましたが、コンパイルされず、"セレクター「dataWithContentsOfFile:ofType」の既知のクラス メソッドはありません。エラー. iOS 5 をターゲットにしており、ARC とストーリーボードで 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 に答える