小编use*_*842的帖子

insertTimeRange:ofTrack:atTime:error:(类AVMutableCompositionTrack)在iPhone上失败

类AVMutableCompositionTrack的insertTimeRange:ofTrack:atTime:error:在iPhone(但不是模拟器)上返回NO,并且错误“操作无法完成”。错误消息没有帮助,我很想找出错误的原因,更不用说解决方法了。任何帮助,将不胜感激。

在下面的示例代码中,我要做的就是尝试将音频剪辑添加到AVMutableCompositionTrack。这是代码中发生的事情:

  1. AVMutableComposition和AVMutableCompositionTrack对象是在init中创建的。

  2. 调用class方法addPhrase:atTime:将音频剪辑添加到合成音轨。

  3. 实际插入的函数是addAudioClip:atTime:。

  4. 辅助函数audioClipWithName:ofType将请求的音频文件加载到AVAssetTrack中。

-> NSLOG输出:

insertTimeRange atTime = 0.0范围=(0.0,2.1)compositionTrack = ----------错误!错误域= AVFoundationErrorDomain代码= -11800“操作无法完成” UserInfo = {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x16fc1c90 {Error Domain = NSOSStatusErrorDomain代码= -12780“(null)”},NSLocalizedFailureReason = An发生未知错误(-12780)}

->样本代码:

@interface MyAudioPlayer()

@property (strong, nonatomic) AVMutableComposition *composition;
@property (strong, nonatomic) AVMutableCompositionTrack *compositionTrack;

@end


@implementation MyAudioPlayer

- (id) init
{
    self = [super init];
    if (self != nil) {
        self.composition = [AVMutableComposition composition];
        self.compositionTrack = [self.composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
    }
    return self;
}

// Add the phrase into compositionAudioTrack at the given …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios avmutablecomposition avasset

1
推荐指数
1
解决办法
541
查看次数

标签 统计

avasset ×1

avmutablecomposition ×1

ios ×1

iphone ×1

objective-c ×1