Flash Player 10 в режиме реального времени для воспроизведения звука - PullRequest
0 голосов
/ 14 июля 2009

Я пытаюсь воспроизвести некоторые образцы данных с помощью новых звуковых возможностей Flash Player в режиме реального времени. Я начал с примера, приведенного внизу этой страницы о liveocs, которая, кажется, работает хорошо и играет кристально чистый тон.

Я предполагаю, что два writeFloat в примере записывают в левый и правый аудиоканалы соответственно и что записываемые данные являются 32-битными (из-за числа с плавающей запятой).

Тем не менее. Кажется, у меня возникают проблемы с преобразованием моих старых 8-битных аудиоданных в формат, понятный для этого интерфейса. При воспроизведении данных семпла я смутно слышу ожидаемый звук, но он сильно искажен. Мои данные сэмплов состоят из необработанных 8-битных сэмплов, которые варьируются от 0..255, где 127 - тишина.

Я пробовал разные формулы преобразования, но мне кажется, что мне не хватает важной информации об этом преобразовании.

Любая помощь с благодарностью.

UPDATE

Правильная формула оказывается:

f = (sample.data.readByte() - 127) / 255

Ответы [ 2 ]

2 голосов
/ 14 июля 2009

Попробуйте преобразование var newSample: Number = (Number (oldSample) -127.0) /127.0;

1 голос
/ 14 июля 2009

Убедитесь, что вы правильно читаете 8-битные данные. Если вы используете класс ByteArray, тогда используйте readUnsignedByte (вместо readByte), чтобы получить значение в диапазоне 0-255. Затем используйте формулу, предложенную MontyGomery.

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