Russian Qt Forum
Ноябрь 22, 2024, 18:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAudioRecorder не видит устройства  (Прочитано 6230 раз)
Disa
Гость
« : Август 14, 2013, 16:44 »

Добрый день.

Не знаю как побороть. Микрофон подключен, стандартная утилита звукозаписи под виндой его видит. А вот audioRecorder->audioInputs(), где audioRecorder = new QAudioRecorder(this) ничего не выдает. На другом компе ситуация интереснее. Значение из audioRecorder->audioInputs() дает название аудиокарты, когда передаю ее в setAudioInput, записываю в файл звук с аудиокарты, а не с микрофона (то есть весь звук из системы).
Это все на разных машинах под win7x64 (qt 5.1). Под Mintом и XP на одной из них все работает как нужно.

За ранее благодарен!
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1 : Август 14, 2013, 16:55 »

Надо проверить, что записывает на этих компах стандартный пример из msvc2012\examples\multimedia\audiorecorder\
Записан
Disa
Гость
« Ответ #2 : Август 15, 2013, 11:14 »

Спасибо, но, к сожалению, именно на основе этого экзампла я и писал код. У меня такой же форыч для списка устройств, что и там. :/
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #3 : Август 15, 2013, 16:40 »

Qt Multimedia работает в Windows через MME API, которому довольно много лет и оно может драйверами современных звуковых плат поддерживаться мягко говоря кое-как. Я для более-менее нормальной записи звука под Windows пользуюсь RtAudio или portaudio. Они умеют работают с MME, DirectSound, ASIO, WASAPI. Об этом здесь уже говорилось неоднократно. Интегрируются с Qt обе библиотеки довольно прозрачно.
« Последнее редактирование: Август 15, 2013, 16:42 от xokc » Записан
Disa
Гость
« Ответ #4 : Август 15, 2013, 17:02 »

Спасибо большое! Я уже намучился с этим на разных машинах.
Записан
Disa
Гость
« Ответ #5 : Август 19, 2013, 18:09 »

Почитал документацию PortAudio и OpenAL, вторая как-то больше приглянулась, т.к. напоминает синтаксисом OpenGL. Ну на вкус и цвет как говорится.

Вопрос:

1). Можно ли каким-то образом увеличить количество видимых для QAudioRecorder или QAudioInput кодеков? Под Win7 у меня видит только pcm и wav и соответсвующие контейнеры. Хотелось бы amr, например. Это резко упростит мне жизнь и не заставит полностью переделывать проект под новую либу.

2). Я не очень в курсе, но если что-то кодировать/декодировать в mp3  lam'ом, это нарушение каких-то лицензий?

3). Ну и глобальный вопрос - нужно писать звук. Писать долго, 8мь часов. Если все пихать в pcm/wav то получиться несколько гигов. В голове пока несколько идей:

   а). Писать в несколько разный файлов, конвертировать чем-то типа ffmpeg'а или lim'а и потом смерживать
   б). Конвертировать в процессе записи звука. Но в этом случае, я не очень в курсе - всегда ли можно конвертировать записываемый звук на ходу?

За ранее благодарен!
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #6 : Август 19, 2013, 19:45 »

http://www.prog.org.ru/topic_24657_0.html Вот либу я делаю в свободное время, можно звук и в mp3 кодировать(на лету).
Вкратце: берем AudioGrabber, настраиваем и передаем в объект класса Recorder через setAudioGrabber. Потом настраиваем кодировщик recorder->encoder()->setAudioCodecSettings() и вызываем start у Recorder'а.
« Последнее редактирование: Август 19, 2013, 19:48 от kibsoft » Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Disa
Гость
« Ответ #7 : Август 21, 2013, 00:08 »

Ага, спасибо большое. Начал ковыряться.

Немного Off - можете пж подсказать плату pci или внешний midi интерфейс на 4е и более аудио-входов (3,5), чтобы к каждому из входов можно было бы обратиться по имени или индексу как к разным устройствам?

Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 23.