0

我正在为一个视频创建配乐,该视频由一个介绍声音片段、一个循环中间片段和一个结束片段组成。我需要将这些动态写入 ByteArray,然后将它们与位图结合起来制作视频。它正在工作,除了在视频输出中,我在介绍声音结束和循环声音开始之间有一个微小的延迟(音频文件没有任何静音,它们是无缝的) - 谁能告诉我如何避免这种情况?(_soundIntro、_soundLoop 和 _soundEnd 是嵌入的音频文件。)

var baAudio:ByteArray = new ByteArray();
var baAudioIntro:ByteArray = new ByteArray();
var baAudioLoop:ByteArray = new ByteArray();
var baAudioEnd:ByteArray = new ByteArray();

var totalLength:Number = (_bitmaps.length / FLV_FRAMERATE) * 44000;
var loopLength:Number = totalLength - (_soundIntro.length * 44.1) - (_soundEnd.length * 44.1);

_soundIntro.extract(baAudioIntro, _soundIntro.length * 44.1);
_soundLoop.extract(baAudioLoop, loopLength);
_soundEnd.extract(baAudioEnd, _soundEnd.length * 44.1);

baAudio.writeBytes(baAudioIntro);
baAudio.writeBytes(baAudioLoop);
baAudio.writeBytes(baAudioEnd);
4

1 回答 1

1

事实上,答案是 Flash 之外的 .mp3 编码往往会在音频剪辑的开头和结尾留下间隙,从而阻止无缝循环/过渡(http://www.netalive.org/swsu/archives/2007/01/ gapless_mp3_loops_in_flash_1.html)我切换到 .wav 文件,导入到 Flash(从而让 Flash 处理编码),它解决了这个问题。

于 2013-08-05T16:06:12.193 回答