AVMutableCompositionで動画に音声をのせようと思ったときのこと。BGMの長さのほうが動画より短い場合にBGMをループさせようと思ったところ、どうも死んでしまったらしい。
insertTimeRangeしている時はまだ死なず、合成のセッションが進んでいる時に死ぬので気づきづらい。いつのまにか figAssetExportSession_CopyProperty signalled err=-16979
とか figAssetExportSession_updateProgress
とかのエラーログが残っている。
ためしにループの最後を削ってみたら成功したため、どうも最後のループの切り取り方がまずくはみだしているかなんかでエラーになっているような感じがした。
下記参考URLを見ると、どうも同じ現象が発生していたようで下の方に修正すべき書き込みがあった。試してみたらうまく行った。
https://stackoverflow.com/questions/20211694/loop-avmutablecompositiontrack
audioDuration = CMTimeSubtract(totalDuration,videoDuration);
to:
audioDuration = CMTimeSubtract(videoDuration,currentTime);
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント