我几个月来一直试图舔这个问题...... 在Flash 9中,我正在尝试加载流式MP3文件并计算其轨道长度。我可以做得很好,但是当mp3的声道是单声道时,时间是原始音轨长度的两倍。我怎么知道这个?好吧,我通过录制到Windows上的录音机来测试我的播放器,但幸运的是,我忘了在立体声中录制MP3。
现在,在Flash中,我尝试使用字节加载,字节总数,播放位置以及您可能想到的所有公式计算持续时间。数学很好。问题是当Flash加载mp3时,它会自动假定文件是立体声的。因此,当它加载数据时,它会继续前进并使它认为具有的字节数加倍,因为它识别一个特定大小的一个通道,然后将它加倍为立体声。这会产生负载大小的错误值,但仍然可以通过正确的数学运算使轨道长度加倍。这就是为什么单声道不适用于我们使用的常用公式。
为了解决这个问题,我需要一种方法来确定文件是单声道还是立体声。不,ID3数据也返回错误的值,我已经尝试使用soundTransform.leftToLeft,soundTransform.leftToRight,soundTransform.rightToLeft和soundTransform.rightToRight手动确定(它返回立体声的值)。
我不知道有什么办法可以让Flash正确地告诉你文件的音频通道。我希望我只是忽略了一些东西,任何帮助或疑难解答提示,无论我是否已经尝试过,都将不胜感激。
答案 0 :(得分:0)
你确定ID3是正确的吗? 我有几个mp3报告错误的长度,不是因为立体声/单声道问题,而是因为标题损坏。