【发布时间】:2011-09-09 02:09:15
【问题描述】:
我正在使用 2 个声道同时播放 2 个单独的、外部加载的 mp3 文件。现在我将播放按钮绑定到启动第一个 mp3 的功能,然后是第二个。问题是 - 第二个 mp3 在第一个之后几毫秒开始。有没有办法可以确保这两个同时开始播放?
function playMusic(evt:MouseEvent):void
{
channel = myMusic.play(songPosition);
channel2 = myMusic2.play(songPosition);
myTimer.start();
btnPlay.mouseEnabled = false;
}
编辑:我发现了一个与 2 个音频源的 TIMER 匹配的笨拙解决方法。它有效,但现在我在尝试匹配时开始打嗝:
function updateTime(evt:TimerEvent):void
{
lblSongTime.text = convertTime(channel.position);
if(channel.position!=channel2.position){
trace("out of sync")
SoundMixer.stopAll()
channel = myMusic.play();
channel2 = myMusic2.play(channel.position);
}
}
【问题讨论】:
-
您是否尝试在最初调用
myMusic2.play时使用channel.position而不是songPosition? -
是的,我昨晚在寻找修复程序时尝试了这一点。仍然开始不同步。我想它一定是一个动作脚本错误。非常感谢您提供的任何帮助。
-
好吧,我相信我一开始就摆脱了小故障。在 playMusic 功能中,我将两个通道的音量设置为 0。然后在同步校正后将音量调高。笨拙,但我认为有效?
标签: flash actionscript-3 actionscript