闪存 9 : How to determine if a streaming track is mono?

原文 标签 flash audio streaming mp3

几个月来我一直试图解决这个问题......
在 Flash 9 中,我尝试加载流式 MP3 文件并计算其轨道长度。我可以做到这一点,但是当 mp3 的 channel 是单声道时,时间是原始音轨长度的两倍。我是怎么想出来的?好吧,我通过在 Windows 上录制到 Sound Recorder 来测试我的播放器,但幸运的是,我忘了用立体声录制 MP3。

现在,在 Flash 中,我尝试使用加载的字节数、总字节数、播放位置和所有您可能想到的公式来计算持续时间。数学很好。问题是当 Flash 加载 mp3 时,它会自动假定文件是立体声的。因此,当它加载数据时,它会继续并将其认为拥有的字节量加倍,因为它识别出一个特定大小的 channel ,然后将其加倍以获得立体声。这会产生负载大小的错误值,通过正确的数学运算,仍然会使轨道长度加倍。这就是为什么单声道不适用于我们使用的常用公式。

为了解决这个问题,我需要一种方法来确定文件是单声道还是立体声。不,ID3 数据也返回错误的值,我已经尝试使用 soundTransform.leftToLeft、soundTransform.leftToRight、soundTransform.rightToLeft 和 soundTransform.rightToRight 手动确定(它返回立体声值)。

我不知道有什么方法可以让 Flash 正确地告诉你文件有哪些音频 channel 。我希望我只是忽略了一些东西,任何帮助或故障排除提示,无论我是否已经尝试过,都将不胜感激。

最佳答案

你确定ID3是正确的?
我有几个 mp3 报告长度错误,不是因为立体声/单声道问题,而是因为 header 损坏。

关于闪存 9 : How to determine if a streaming track is mono?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605748/

相关文章:

iphone - cs5.5的问题:无法在4.3.1之前的ios版本上安装ipa

c# - 如何编写客户端-服务器视频流

javascript - 为什么我的JS音频流代码在x86和x86_64系统上听起来不同?

javascript - javascript下拉菜单和Flash冲突

flash - 如何检测由于 Flash 崩溃导致的 YouTube iFrame 故障?

java - 如何访问和播放 Java 资源类文件夹中的音频文件?

javascript - 自动播放使用javascript创建的html音频

python - PyAudio 输入溢出

HTML 5 视频流 .ism 文件?

javascript - Flash对象未正确嵌入IE中