これは私の最初の本格的なプロジェクトです。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"];];