将声音顺序发送到ByteArray无缝 - 闪光,as3

时间:2013-08-01 15:35:58

标签: actionscript-3 audio bytearray

我正在创建一个视频的音轨,该视频包括一个介绍声音片段,一个循环中间音乐片段和一个结束片段。我需要动态地将它们写入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);

1 个答案:

答案 0 :(得分:1)

的确,答案是flash外的.mp3编码往往会在音频片段的开头和结尾留下空白,从而阻止无缝循环/转换(http://www.netalive.org/swsu/archives/2007/01/gapless_mp3_loops_in_flash_1.html) 我切换到导入到Flash的.wav文件(因此让Flash处理编码)并修复了问题。