в flex, динамически загружать звуковой объект из закодированных байтов - PullRequest
1 голос
/ 20 июля 2009

У меня есть устаревший формат файла, который содержит встроенные в него звуки (в различных кодировках). Я хотел бы иметь возможность воспроизводить эти звуки во Flash (Air?), Читая байты звука из файла и создавая для них объект Sound.

Если звук не кодирован (например, необработанный pcm), я обнаружил, что могу использовать новое событие flex 4 SampleDataEvent.SAMPLE_DATA для воспроизведения звука.

Однако, если звук закодирован (например, mp3), то я в растерянности. Звук, ожидаемый SampleDataEvent.SAMPLE_DATA, должен быть необработанным pcm. Из того, что я видел, закодированные звуки могут быть созданы только путем [Embed] их или с помощью URLRequest с Sound.load ().

Конечно, есть третий путь? AMF или e4x?

1 Ответ

3 голосов
/ 22 июля 2009

На самом деле есть только два маршрута для вас. Первый заключается в написании декодера в ActionScript. Вы можете использовать Alchemy для портирования некоторого кода C / C ++, чтобы значительно упростить эту работу (и, возможно, сделать ее более производительной). Именно так я и настроил воспроизведение Ogg Vorbis для работы со Flash.

Другой вариант - динамически создать действительный SWF внутри ByteArray. Этот SWF-файл может содержать встроенный звуковой объект, который состоит из ваших звуковых данных. Многие люди уже осуществляли подобные хаки до того, как Flash Player 10 был доступен. Я считаю, что вы можете найти хорошее место для начала в Кодовой базе PopForge Андре Мишеля и Джоа Эберта .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...