Я пытаюсь решить эту проблему уже несколько месяцев ...
В Flash 9 я пытаюсь загрузить потоковый MP3-файл и рассчитать его длину дорожки. Я могу сделать это хорошо, но когда канал mp3 моно, время вдвое больше, чем оригинальная длина трека. Как я понял это? Что ж, я протестировал свой плеер, записав его в Sound Recorder на Windows, но, к счастью, я забыл записать MP3 в стерео.
Теперь, во Flash, я попытался вычислить продолжительность многими способами, используя загруженные байты, общее количество байтов, позицию воспроизведения и все формулы, которые вы могли бы использовать. Математика в порядке. Проблема в том, что когда Flash загружает mp3, он автоматически предполагает, что файл находится в стереофоническом режиме. Таким образом, когда он загружает данные, он идет вперед и удваивает количество байтов, которое, по его мнению, имеет, потому что он распознает один канал определенного размера, а затем просто удваивает его для стерео. Это дает ложное значение размера нагрузки, которое при правильной математике удваивает длину дорожки. Вот почему моно не работает с обычной формулой, которую мы используем.
Для борьбы с этим мне нужен способ определить, является ли файл моно или стерео. И нет, данные ID3 также возвращают неправильное значение, я уже пытался определить вручную, используя soundTransform.leftToLeft, soundTransform.leftToRight, soundTransform.rightToLeft и soundTransform.rightToRight (возвращает значения для стереозвука).
Я не знаю, как Flash может правильно сказать, какие аудиоканалы есть в файле. Надеюсь, я просто что-то пропускаю и буду благодарен за любую помощь или советы по устранению неполадок, независимо от того, пробовал ли я их уже сейчас.