2

重複の可能性:
iPhone アプリケーションで 2 つのビデオ ファイルを結合する

サーバーから40MBのビデオファイルを複数の分割(2MB)でダウンロードしました。私が使用NSURLConnectionしているのは、その 20 分割を 1 つのビデオ ファイルとして作成することです。それを行う方法は、iPhoneフレームワークにAPIがあり、誰かがコードで説明してくれます。これが私のconnectionDidFinishLoadingメソッドです

 - (void)connectionDidFinishLoading:(NSURLConnection *)connection {

NSString *fileName = [NSString stringWithFormat:@"%@",
                                      filePath];
[contentData writeToFile:fileName atomically:YES];

}

このように書くと、最後の分割ファイルしか取得できません。私は2MBのデータだけがそれを行う方法を教えてくれることを意味しますか?

4

2 に答える 2

1

このシナリオで writeToFile が機能するかどうかはわかりませんが、

ただし、追加モードでファイルを追加するには、次のコードを使用します。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"];
NSString *savedString = textview.text;
NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:logPath];
[myHandle seekToEndOfFile];
[myHandle writeData:[savedString dataUsingEncoding:NSUTF8StringEncoding]];

コードを取り外し、

[contentData writeToFile:fileName atomically:YES];
于 2012-09-10T11:54:18.587 に答える
-1
- (void) mergeVideos{
///... after getting hold or your assets....firstAsset, secondAsset

AVMutableComposition* mixComposition = [AVMutableComposition composition];

AVMutableCompositionTrack *firstTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo 
                                                                  preferredTracfirst:kCMPersistentTracfirst_Invalid];
[firstTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, firstAsset.duration) 
                    ofTrack:[[firstAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] 
                     atTime:kCMTimeZero error:nil];

AVMutableCompositionTrack *secondTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo 
                                                                   preferredTracfirst:kCMPersistentTracfirst_Invalid];

[secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration)
                     ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] 
                      atTime:kCMTimeZero error:nil];    

[secondTrack setPreferredTransform:CGAffineTransformMakeScale(0.25f,0.25f)]; 
}
于 2012-09-10T12:28:13.497 に答える