Russian Qt Forum

Qt => Мультимедиа => Тема начата: sergebegger от Июнь 26, 2010, 13:28



Название: Alsa -> Phonon
Отправлено: sergebegger от Июнь 26, 2010, 13:28
Не могу создать увязку между Alsa и Phonon:
Имеется нечто:
Код:
    QBuffer* soundData = new QBuffer();
    QString program = "arecord -q -D hw:2,0 -r 48000 -c 2 -f S16_LE";
    QProcess *alsa = new QProcess();
    alsa->start(program);

// а как увязать вывод  alsa в soundData - мозг сломал :((

    Phonon::MediaObject *music = new Phonon::MediaObject(this);
    Phonon::AudioOutput* audioOutput = new Phonon::AudioOutput(this);
    Phonon::createPath(music, audioOutput);
    music->setCurrentSource(soundData);
    music->play();
Пробовал и включать в проект asoundlib - опять-же буфер имею:
Код:
periodBuf = (unsigned char *)malloc(periodsize * framesize); //взято из примеров по ALSA
а что с ним далее делать незнаю.....

Может кто - что подскажет? Или варианты попроще есть?
Сразу предупреждаю - в С++ и Qt ламер - обложился книгами, но пока бестолку...


Название: Re: Alsa -> Phonon
Отправлено: Rcus от Июнь 26, 2010, 13:43
А зачем вам arecord если можно взять QAudioInput (\since 4.6) и напрямую подключить вывод через QIODevice *QAudioInput::start()? Если же нужен именно arecord, то источником данных будет сам QProcess (ибо наследник QIODevice)


Название: Re: Alsa -> Phonon
Отправлено: sergebegger от Июнь 26, 2010, 15:05
QAudioInput может и подошел-бы, но надо скроссировать выход USB тюнера со входом звуковухи, например в консоли
Код:
sox -c 2 -r 48000 -t alsa hw:2,0 -t alsa hw:1,0
или
Код:
arecord -q -D hw:2,0 -r 32000 -c 2 -f S16_LE | aplay -q -
- работает. Нужен аналогичный вывод-ввод.