tag:crieit.net,2005:https://crieit.net/tags/AVFounation/feed
「AVFounation」の記事 - Crieit
Crieitでタグ「AVFounation」に投稿された最近の記事
2021-04-19T23:32:28+09:00
https://crieit.net/tags/AVFounation/feed
tag:crieit.net,2005:PublicArticle/16862
2021-04-19T23:32:28+09:00
2021-04-19T23:32:28+09:00
https://crieit.net/posts/AVMutableComposition-insertTimeRange
AVMutableCompositionに音声をinsertTimeRangeして死ぬ時
<p>AVMutableCompositionで動画に音声をのせようと思ったときのこと。BGMの長さのほうが動画より短い場合にBGMをループさせようと思ったところ、どうも死んでしまったらしい。</p>
<p>insertTimeRangeしている時はまだ死なず、合成のセッションが進んでいる時に死ぬので気づきづらい。いつのまにか <code>figAssetExportSession_CopyProperty signalled err=-16979</code> とか <code>figAssetExportSession_updateProgress</code> とかのエラーログが残っている。</p>
<p>ためしにループの最後を削ってみたら成功したため、どうも最後のループの切り取り方がまずくはみだしているかなんかでエラーになっているような感じがした。</p>
<p>下記参考URLを見ると、どうも同じ現象が発生していたようで下の方に修正すべき書き込みがあった。試してみたらうまく行った。</p>
<p><a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/20211694/loop-avmutablecompositiontrack">https://stackoverflow.com/questions/20211694/loop-avmutablecompositiontrack</a></p>
<pre><code>audioDuration = CMTimeSubtract(totalDuration,videoDuration);
to:
audioDuration = CMTimeSubtract(videoDuration,currentTime);
</code></pre>
だら@Crieit開発者