iOS 9 AVAsset问题

时间:2015-11-06 06:10:31

标签: ios ios9 assets

我现在正面临一个关键问题 我问这个,因为我无法通过谷歌搜索找到解决方案。 我正在使用AVAsset文件处理输入/输出音频。但是,当我测试时,iOS8中没有问题 但是在iOS9中,有时候视频停止时只播放音频。 在视频停止时取出文件时没有问题。 当我播放原始AVAsset文件时,不会出现此问题,但如果我通过下面的代码创建AVAsset文件并播放,则会出现上述错误。 我需要解决这个问题,但我找不到任何解决方案。请帮忙。

AVAsset *asset = _recordSession.assetRepresentingSegments;

AVMutableComposition *mixComposition = [AVMutableComposition composition];

AVMutableCompositionTrack *compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];

NSError *error;

AVAssetTrack *video = [[asset tracksWithMediaType:AVMediaTypeVideo] firstObject];
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset.duration) ofTrack:video atTime:kCMTimeZero error:&error];

if (error != noErr) {
    NSLog(@"compositionVideoTrack error = %@", error);
}


if ([asset tracksWithMediaType:AVMediaTypeAudio].count > 0) {
    AVMutableCompositionTrack *audioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];

    AVAssetTrack *audio = [[asset tracksWithMediaType:AVMediaTypeAudio] firstObject];
    [audioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset.duration) ofTrack:audio atTime:kCMTimeZero error:&error];

    if (error != noErr) {
        NSLog(@"audioTrack error = %@", error);
    }

}

AVAsset *playAsset;
playAsset = mixComposition;

0 个答案:

没有答案