1

画像配列でムービーを作成し、それをフォト ライブラリに保存しました。

ムービーを再生すると、一度にすべての画像が表示されます。つまり、ムービーに 10 枚の画像を保存した場合、ムービーの再生を開始すると、10 枚の画像すべてが 1 秒で表示されますが、曲は再生され続けます。

ここで私の問題は、次のように画像をスライドさせたいことです。

最初の 3 秒間は 1 番目の画像、次の 3 秒間は 2 画像のような

AVMutableCompositionTrack などを使用してそのタイプのムービーを作成する方法。

私のサンプルコードは次のとおりです。

 CMTime nextClipStartTime = kCMTimeZero;

AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:video_inputFileUrl options:nil];
CMTimeRange video_timeRange = CMTimeRangeMake(kCMTimeZero,videoAsset.duration);
AVMutableCompositionTrack *a_compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
//NSArray *myarray1 = [videoAsset tracksWithMediaType:AVMediaTypeVideo] ;
[a_compositionVideoTrack insertTimeRange:video_timeRange ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:nextClipStartTime error:nil];

//nextClipStartTime = CMTimeAdd(nextClipStartTime, a_timeRange.duration);

AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:audio_inputFileUrl options:nil];
CMTimeRange audio_timeRange = CMTimeRangeMake(kCMTimeZero, audioAsset.duration);
AVMutableCompositionTrack *b_compositionAudioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[b_compositionAudioTrack insertTimeRange:audio_timeRange ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:nextClipStartTime error:nil];
4

0 に答える 0