0

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

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

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

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

4

1 回答 1

0

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

于 2009-03-03T09:41:17.960 回答