`AVMutableCompositionTrack.insertTimeRange` завершается с ошибкой -11800 - PullRequest
0 голосов
/ 08 апреля 2020

Я создаю AVMutableComposition из видео и аудио дорожек:

func makeComposition(videoTrack: AVAssetTrack, audioTrack: AVAssetTrack) -> AVComposition {
    let composition = AVMutableComposition()
    /* ... */
    let compositionAudioTrack = composition.addMutableTrack(withMediaType: .audio)!
    try compositionAudioTrack.insertTimeRange(someRange, of: audioTrack, at: .zero) // Error!
    /* ... */
    return composition
}

и insertTimeRange(_:of:at:) завершается неудачно с AVFoundationError -11800 AVError.code.unknown и недокументированным базовым NSOSStatusError -12780. В чем может быть дело?

1 Ответ

0 голосов
/ 08 апреля 2020

Оказывается, к тому времени, когда я звоню insertTimeRange, источник AVAsset audioTrack был освобожден. AVAssetTrack сохраняет слабую ссылку на источник AVAsset, поэтому вы должны сохранить AVAsset, чтобы использовать AVAssetTrack.

...