![]() |
Аудио поток через сокет
Доброго времени суток.
Собственно как воспроизвести аудио поток (mpeg) полученый через Socket? Что я делаю: 1. Устанавливаю соединение с сервером через сокет. 2. Отправляю HTTP запрос 3. Получаю ответ и записываю его в ByteArray. 4. Обрабатываю ответ, исключая заголовок и метаданные. 5. Подписываюсь на событие SampleDataEvent и выполняю audio.play(). 6. Пишу байты порциями из ByteArray в even.data в обработчике события SampleDataEvent. Звук конечно есть, но это просто какой-то шум. Пробовал вместо ByteArray объявлять еще один Sound и в него подгружать этот поток, работает. Пробовал в этот дополнительный Sound подгружать mp3-файл и делать extract, в итоге получилось что длина ByteArray в 8 раз привышает размер файла. Где-то вычитал что нужно как-то декодировать данные и ресэмплировать их, но вот как нигде не нашел. Что мне нужно сделать с моим массивом аудио данных чтобы Sound их нормально воспроизвел? |
|
Насколько я понимаю loadCompressedDataFromByteArray работает по аналогии load, т.е. я не могу загрузить в один и тот же Sound этими методами несколько раз. А у меня идет непрерывный поток, который надо постепенно подгружать. Или я ошибаюсь на счет loadCompressedDataFromByteArray?
|
Можно попробовать использовать NetStream и программный FLV-контейнер вместе с Icecast, если не принципиально использование собственного протокола: http://www.adobe.com/devnet/flashpla...t-streams.html
P.S. Как-то использовал похожий протокол, loadCompressedDataFromByteArray именно дописывает данные в Sound. Да, и не совсем понятно зачем использовать HTTP-запросы через Socket. |
| Часовой пояс GMT +4, время: 19:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.