Я создал проигрыватель, который воспроизводит mp3 и отлично справляется с этой задачей (во Flash AS3 задача не из легких, чтобы создать безопасный и стабильный плеер).Он также может воспроизводить радио mp3-потоки нескольких радиостанций.«Проблема» с потоками mp3 заключается в том, что я не знаю, как определить, что это поток mp3 во флэш-памяти (документация не найдена в Интернете и на сайте Adobe).Также я не знаю, как лучше всего буферизовать эти потоки.
Во всяком случае, я сделал несколько сложных методов обнаружения, чтобы решить, что это поток, проверив изменения getBytesLoaded()
и sound.length
для(длительный) период времени.Это необходимо для того, чтобы «сказать» проигрывателю не ждать, пока поток / файл завершится, или пропустить файл, если он поврежден.Проблема с этим методом обнаружения заключается в медленном соединении или быстром соединении (оба имеют побочные эффекты).
Например, когда это медленное соединение, метод обнаружения завершается ошибкой, поскольку он считает, что файл является потоком икогда это быстрое соединение (или Chrome - он загружает поток быстрее, чем Firefox), он считает, что файл поврежден, пропускает воспроизведение и запускает следующий файл.
Это не просто объяснить, но главноеВопрос в том, могу ли я увидеть / обнаружить в начале потока (после его открытия), что это mp3-поток, так что я могу пропустить свой глупый «угадай-то-это-файл-или-поток-тест»?
Извините за мой плохой английский сегодня, но я должен это исправить.Есть ли кто-нибудь, кто знает стабильное решение этого?Я уже пробовал поиск заголовков, но не могу полагаться на это (найдено слишком много заголовков серверов различий).