【问题标题】:Loading sounds with loadCompressedDataFromByteArray and play them later?使用 loadCompressedDataFromByteArray 加载声音并稍后播放?
【发布时间】:2012-01-14 18:10:24
【问题描述】:

我正在尝试使用 loadCompressedDataFromByteArray() 加载 mp3 文件,然后稍后播放它们,但似乎没有办法这样做。使用 loadCompressedDataFromByteArray 加载时,Sound 类仅调度 ID3 事件,不调度其他事件(完成、打开等)。如果我只是用 loadCompressedDataFromByteArray 加载声音,然后在稍后尝试播放我得到的声音:

ArgumentError: Error #1063

现在唯一的选择似乎是在调用 loadCompressedDataFromByteArray() 后立即开始播放声音...

_sound.loadCompressedDataFromByteArray(_bytes, _bytes.length); 
_sound.play();

但这在我的情况下完全没用,因为我正在尝试预加载需要稍后使用的 mp3 文件。

有人知道解决方法吗?

【问题讨论】:

  • 完整的错误信息总是有帮助的。
  • 会不会和这个有关? "数据将从当前 ByteArray 位置读取,完成后将 ByteArray 位置留在指定字节长度的末尾" (help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/…)
  • 不,我已将 ByteArray 位置设置为零,然后再将其加载到声音中。然而,现在我觉得这实际上是一个完全损坏的 API。 Adobe 完成了一项完全悲惨的工作!这同样适用于其他新添加的声音方法 loadPCMFromByteArray(),它也被破坏了,请参见此处:bugs.adobe.com/jira/browse/ASL-281(请投票)。我也会提交关于 loadCompressedDataFromByteArray 方法的错误,如果只有 Adob​​e 的错误系统允许我注册(似乎也被破坏了:-/)。

标签: flash actionscript-3 audio air


【解决方案1】:

我遇到了这个错误,通过在调用 loadCompressedDataFromByteArray 之前将 byteArray 位置设置为 0 为我修复了它:

_bytes.position = 0;
_sound.loadCompressedDataFromByteArray(_bytes, _bytes.length); 
_sound.play();

这能回答你的问题吗?

【讨论】:

    猜你喜欢
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多