![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Всем привет,
я хочу получать инфу с микрофона. Здесь проблем нет, подключаюсь к /dev/audio и и все записываю в бинарный файл, скажем data.au. Теперь надо бы переслать его на динамики, сделать на прямую (типа cat ./data.au > /dev/audio)не могу, ОС выдает, что устройство занято. Что приходит на ум, это надо этот файл преобразовать в какой-нибудь звуковой формат и юзать его через штатный плеер. Вообщем любые идеи, как прослушать полученный файл. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Причем тут C/C++?
Если тебе нужно написать программу, которая будет это делать, то посмотри формат WAV файла. Там ничего сложного, просто заполнишь правильно структуру, запишешь ее перед блоком аудио данных и все. Если же ты ищешь готовое программное решение, то проще использовать уже готовые программы аудиозахвата, например, Audacity. |
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
>Причем тут C/C++?
потому как все написано у меня на С. И мне нужно решение на нем. За WAV спасибо, сейчас попробую |
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Cделал на WAV, но когда запускаю на плеер - некачественный звук, это так должно быть если напрямую забираешь инфу с /dev/audio ??
|
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 1 Всего: 39 |
А заголовки wav выставлены правильно и соответствуют записанному потоку?
ЗЫ. Раньше можно было просто направить дамп в /dev/dsp, сейчас это тоже можно сделать, но с бубном. Может быть проще будет нагуглить такой бубен? -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
С дампом не получается, вот даю все коды, закомнтированные коды в main() это вариант с дампом
Это сообщение отредактировал(а) Vicul - 22.10.2010, 08:08 |
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
добавил канал в заголовок, стало лучше
Шумы ушли, но до идеала далеко. Может у меня чтото с микрофоном? Хотя в скайпе работает. |
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Вообщем поменял /dev/audio на /dev/dsp заработало!
Всем спасибо! |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Почитай про PulseAudio, может стоит воспользоваться его API.
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Ошибка в строке 46, должно быть
PS. Ваша AddRcvBuffer - это мясорубка для динамической памяти ![]() |
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
Конечно там лажа, за несколько секунд дамп возрастает до 500К, на боевой проге там нужно делать свопинг. Кусок я привел показать, как я формирую WAV заголовок. Ладно, проблема не в динамическом буфере, проблема в другом - как передать дамп обратно на /dev/dsp пока без левых библиотек? ОC не даст открыть его для записи. У вас есть идеи коллега? Это сообщение отредактировал(а) Vicul - 24.10.2010, 09:24 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
||||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Vicul, конечно работать не будет. Так как во всех современных дистрибутивах в качестве системного микшера используется pulseaudio и именно она "занимает" все устройства ввода и вывода звука. Поэтому, я лично, рекомендую использовать именно ее. Ну или что-то, что позволит работать через нее с более простым API (например, OpenAL).
|
|||
|
||||
Vicul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 27.4.2009 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |