Определите, является ли mp3 'file' потоком mp3 во флэш-памяти (Action Script 3, AS3) - PullRequest
0 голосов
/ 30 января 2012

Я создал проигрыватель, который воспроизводит mp3 и отлично справляется с этой задачей (во Flash AS3 задача не из легких, чтобы создать безопасный и стабильный плеер).Он также может воспроизводить радио mp3-потоки нескольких радиостанций.«Проблема» с потоками mp3 заключается в том, что я не знаю, как определить, что это поток mp3 во флэш-памяти (документация не найдена в Интернете и на сайте Adobe).Также я не знаю, как лучше всего буферизовать эти потоки.

Во всяком случае, я сделал несколько сложных методов обнаружения, чтобы решить, что это поток, проверив изменения getBytesLoaded() и sound.length для(длительный) период времени.Это необходимо для того, чтобы «сказать» проигрывателю не ждать, пока поток / файл завершится, или пропустить файл, если он поврежден.Проблема с этим методом обнаружения заключается в медленном соединении или быстром соединении (оба имеют побочные эффекты).

Например, когда это медленное соединение, метод обнаружения завершается ошибкой, поскольку он считает, что файл является потоком икогда это быстрое соединение (или Chrome - он загружает поток быстрее, чем Firefox), он считает, что файл поврежден, пропускает воспроизведение и запускает следующий файл.

Это не просто объяснить, но главноеВопрос в том, могу ли я увидеть / обнаружить в начале потока (после его открытия), что это mp3-поток, так что я могу пропустить свой глупый «угадай-то-это-файл-или-поток-тест»?

Извините за мой плохой английский сегодня, но я должен это исправить.Есть ли кто-нибудь, кто знает стабильное решение этого?Я уже пробовал поиск заголовков, но не могу полагаться на это (найдено слишком много заголовков серверов различий).

1 Ответ

0 голосов
/ 30 января 2012

Извините, но сделать это невозможно, потому что нет разницы между файлом MP3 и потоком MP3 - это абсолютно одинаковые данные.Однако, если у вас есть дескриптор файла или другая программа, выдающая конкретный ответ вашему проигрывателю, чтобы подтвердить, что размер отправляемых данных известен, то вы можете рассматривать этот ответ, как если бы это был файл.

...