Flash 9: как определить, является ли потоковая дорожка моно? - PullRequest
0 голосов
/ 03 марта 2009

Я пытаюсь решить эту проблему уже несколько месяцев ... В Flash 9 я пытаюсь загрузить потоковый MP3-файл и рассчитать его длину дорожки. Я могу сделать это хорошо, но когда канал mp3 моно, время вдвое больше, чем оригинальная длина трека. Как я понял это? Что ж, я протестировал свой плеер, записав его в Sound Recorder на Windows, но, к счастью, я забыл записать MP3 в стерео.

Теперь, во Flash, я попытался вычислить продолжительность многими способами, используя загруженные байты, общее количество байтов, позицию воспроизведения и все формулы, которые вы могли бы использовать. Математика в порядке. Проблема в том, что когда Flash загружает mp3, он автоматически предполагает, что файл находится в стереофоническом режиме. Таким образом, когда он загружает данные, он идет вперед и удваивает количество байтов, которое, по его мнению, имеет, потому что он распознает один канал определенного размера, а затем просто удваивает его для стерео. Это дает ложное значение размера нагрузки, которое при правильной математике удваивает длину дорожки. Вот почему моно не работает с обычной формулой, которую мы используем.

Для борьбы с этим мне нужен способ определить, является ли файл моно или стерео. И нет, данные ID3 также возвращают неправильное значение, я уже пытался определить вручную, используя soundTransform.leftToLeft, soundTransform.leftToRight, soundTransform.rightToLeft и soundTransform.rightToRight (возвращает значения для стереозвука).

Я не знаю, как Flash может правильно сказать, какие аудиоканалы есть в файле. Надеюсь, я просто что-то пропускаю и буду благодарен за любую помощь или советы по устранению неполадок, независимо от того, пробовал ли я их уже сейчас.

1 Ответ

0 голосов
/ 03 марта 2009

Вы уверены, что ID3 правильный?
У меня было несколько mp3-файлов, сообщающих о неправильной длине, не из-за проблем со стерео / моно, а из-за поврежденных заголовков.

...