Как видно из примера звук надо записывать в bytearray ( семплы идут в виде числа с дробной частью в диапазоне от -1 до 1, то есть тип float ), для воспроизведения, потом, нужно записать в объект data события SampleEvent требуемое кол-во float-ов, при этом надо учитывать что ожидается на входе двухканальный звук, а с микрофона идет моно, т.е. одноканальный, поэтому каждое записываемое значение надо дублировать, записывать два раза. Если семплирование звука с микрофона производится с отличной от 44100Гц ( значение rate 44 ) надо пересчитывать подачу ( я просто добивал нулями нужное кол-во ). В примере жестко задан размер буфера 8192, это в общем так и есть, но немного неправильный подход, размер буфера возможно не одинаков на разных системах, или может измениться в будущем. Поэтому хорошо бы устанавливать его размер "на лету".
Добавлено через 8 минут
Цитата:
Сообщение от themir
Звук я записывал классом MicRecorder
|
Я знаю этот класс, он делает примерно то же что и приведенный код + кодирует звук в wav-e, посмотрите код внимательно, кодирование в wav-e это очень не сложная задача. Вы его можете организовать самостоятельно ( после прослушивания и/или перед сохранением).