Actionscript 3 AS3中的声音延迟

Actionscript 3 AS3中的声音延迟,actionscript-3,audio,flash-cs5,Actionscript 3,Audio,Flash Cs5,我从游戏库中动态触发短声音(特别是Android的Air)。当用户单击按钮时,实际播放声音可能需要长达600毫秒。 我将其设置为实际声音之前的任何静音,如下所示: private var channel:SoundChannel = new SoundChannel(); private var buttonClickSound:Sound = new button_click(); public function buttonDownClick() { channel = butto

我从游戏库中动态触发短声音(特别是Android的Air)。当用户单击按钮时,实际播放声音可能需要长达600毫秒。 我将其设置为实际声音之前的任何静音,如下所示:

private var channel:SoundChannel = new SoundChannel();
private var buttonClickSound:Sound = new button_click();

public function buttonDownClick() {
    channel = buttonClickSound.play(63);
}
仍然得到一个荒谬的延迟量

我尝试过的事情: 将MP3转换为wav 在时间轴中放置声音片段 从urlLoader调用声音剪辑

所有结果都相同。我知道这里有一些讨论这个问题的帖子,但没有一个能提供我能找到的真正的解决方案。没有办法缓存声音或将其存储在缓冲区中吗


谢谢你的关注

重要更新

针对android的flash CS5 AIR功能从未出过测试版。遗憾的是,adobe以其出色的功能而闻名,flash CS5的这一功能已经停止使用,因此完整的工作/更新版本将成为CS6或CS5.5的一项销售功能。作为一个在adobe产品上花费了数千美元的客户,我对此有很多很多感觉,但我将保留这些关于信息的信息,而不是我对adobe感觉的愤怒。有关这方面的证明,请参见:

因此,这很可能是CS5中android的许多未修复漏洞之一。这并不奇怪,因为当我购买承诺使用AIR 1.5的CS4 master collection时,甚至AIR 1.5也被破坏了,所有的bug修复都被应用到了2.0中,而2.0只适用于CS5。他们在CS4 AIR 1.5中从未修复过的最大错误之一是webkit中的一个严重缺陷,它几乎使webkit在AIR中的任何使用都无法正常工作。事实上,当我在Webkinz.com工作时,一个重大项目被完全抛到了窗外,我实际上因为提议使用AIR而被嘲笑,吹嘘它的神奇之处,然后当这些bug出现时,我在所有同事面前看起来像个白痴。从字面上说,我不是在开玩笑,我180多个开发部门的负责人在一次会议上围绕着一张巨大的桌子与该公司的每一位主要参与者进行了讨论

不管怎么说,也许我的更新确实引起了一些骚动,但我认为这是一个很好的信息,也是一个很好的教训,这总是假设Adobe产品最糟糕。幸运的是,正如我在回答中提到的,这并不是一条死胡同,他们的“商业模式”是有出路的

原始答案

对于Android来说,这是一个悬而未决的问题:

那篇文章已经过时了,但我在同一个时间框架内又看到了好几篇,足以让我称之为事实。你更新过flash CS5吗?(转到帮助->更新)。老实说,我甚至不知道他们是否已经修补/解决了这个bug,但你最好的办法就是抓取最新的FlexSDK,并尝试使用它手动将SWF打包到APK中。说明:

更详细/类似教程的说明:


如果这是一个bug,您将首先看到修复。尝试使用上述方法手动将您的SWF打包到APK中,并确保您已将设备上的AIR for android更新为AIR 2.6(最新版本,请前往市场进行更新)。这将在编译器和运行时端修复或消除问题。

声音延迟是Flash导出到空中时的一个错误

简单的方法是播放一些背景音乐,这样声音设备就不会进入睡眠状态。如果你不想要音乐,你可以让一些无声的声音永远播放下去。这解决了其他短声音的声音延迟问题

[Embed(source="sfx.mp3")]
const snd_sfx:Class;

const sfx:Sound = new snd_sfx();

const SilentSoundTransform:SoundTransform = new SoundTransform(0);

function playSoundSilentlyEndlessly(evt:Event = null):void
{
    sfx.play(0, 1000, SilentSoundTransform).addEventListener(Event.SOUND_COMPLETE, playSoundSilentlyEndlessly, false, 0, true); // plays the sound with volume 0 endlessly
}

playSoundSilentlyEndlessly();

你有什么解决办法吗?你帮我解决了视频延迟问题,我知道你有办法:)老实说,我很难相信这仍然是一个错误/问题,但我发现证据表明,至少有一次,这是一个错误/问题。也许你还在使用测试版中的air for android插件。运行IDE更新将决定这一点,或者打开Adobe Extension Manager(它将检查插件更新)。不过,我现在几乎肯定这是flash/编译端的一个bug。请参阅我的最新答案。典型的adobe。考虑到adobe的业绩记录和我在Air for Android开发方面已经取得的完美成绩,我有一种感觉,这些就是将要展示的解决方案(太好了,不可能是真的)。我尝试过通过adobeAIRSDK而不是FlashIDE手动打包它,结果仍然相同。下一步我会尝试flex,但我怀疑我会得到不同的结果。这是一个非常有趣的故事,但我无法想象经历过,特别是因为我喜欢坐在自己的小角落里工作,戴着耳机,不被期望做出这样的决定。我也了解最新版本的flash。我发现的另一篇帖子指出,android的音频延迟是由于整个应用程序基本上都是进程密集型的这些声音是由于明显的陈旧滞后而延迟的。来源:。考虑到您过去存在性能滞后/缓慢的问题,这可能是相关的。