2021-04-19に投稿

AVMutableCompositionに音声をinsertTimeRangeして死ぬ時

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開発者

Crieitの開発者です。 Webエンジニアです(在宅)。大体10年ちょい。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel, Vue.js, React, Node, RoR 趣味:Elixir, Phoenix, Nuxt, Express, GCP, AWS等色々 PHPフレームワークちいたんの作者

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント