2009-07-23 3 views
4

Я получаю чистый бинарный поток MP3 из вызова ajax. Нет заголовков, ничего. Просто прямые биты MP3. (На самом деле это действительно даже поток?)Как играть в бинарный поток MP3 с помощью jQuery/Javascript?

Я хотел бы иметь возможность воспроизводить его на веб-странице (и, если возможно, предлагать его для скачивания).

Возможно ли это? И если да, то что это лучший способ сделать это?

Если это невозможно, какие-то другие способы справиться с этим?

+0

Должен был упомянуть, что я знаю, что мне нужен флеш-плеер или что-то в этом роде. Меня больше всего интересовало, как играть в поток этого типа без URL-адреса или файла ... – thermans

+0

поэтому ответ ajax содержит строку, содержащую весь mp3-файл? или ответ дает вам URL-адрес этого потока? – mkoryak

+0

Первый. Строка с бинарными mp3-данными. – thermans

ответ

2

Вы не можете играть музыку с чистым javascript. вам нужно будет получить этот поток и передать его флеш-плееру.

попробуйте JW flash player, хотя я не уверен, что он может обрабатывать тип потока, о котором вы говорите. вам нужно будет провести какое-то исследование о том, что он может обработать

+0

наверняка вспышка - не единственный вариант? –

+0

это самый кросс-браузер совместимый. – pixeline

1

Как вы уже упоминали, вам понадобится плагин для mp3-плеера, который наиболее широко доступен. Плагин jquery JMP3 облегчает вам задачу. Он использует флэш-файл для обработки звука.

+0

Я, я сейчас пытаюсь. Но я не вижу, как передать данные. В var? – thermans

1

Если вы используете таргетинг только very modern browsers, вы можете использовать URL-адрес данных и просто написать элемент объекта в свой HTML-код и связать его с этим URL-адресом. Примечание: Я не пробовал это.

0

Вы можете посмотреть на SoundManager 2: Javascript Sound for the Web

Ее открытый исходный код BSD лицензирована JavaScript скрипта для работы со звуком.

Он автоматически подключается к HTML5 или Flash для создания звука в зависимости от того, что доступно.

0

Я сделал это с помощью data uris и проблема с совместимостью с браузером, есть проблема с длиной URL-адреса (в основном> около 30 000 символов не поддерживает IE), и есть также проблема, которую браузер навсегда декодирует значение base64 (буферизация также очень медленная).

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