Название: QAudioOutput
Отправлено: break от Декабрь 19, 2009, 11:09
Не выводится звук через QAudioOutput, при этом выводится ворнинг using null output device, none available Соответственно код C++ (Qt) foreach(const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) qDebug() << "Device name: " << deviceInfo.deviceName();
Не выводит вообще ничего Ubuntu Linux 8.04 - все остальные звуковые приложения работают, alsa вроде в норме, нашел в баг трекере ссылку http://bugreports.qt.nokia.com/browse/QTBUG-6866 там есть патч на эту тему — a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp +++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp @@ -403,6 +403,7 @@ void QAudioDeviceInfoInternal::updateLists()
QList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) { + QList<QByteArray> allDevices; QList<QByteArray> devices; QByteArray filter;
@@ -430,6 +431,7 @@ QList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) if((name != NULL) && (descr != NULL) && ((io == NULL) || (io == filter))) { QString deviceName = QLatin1String(name); QString deviceDescription = QLatin1String(descr); + allDevices.append(deviceName.toLocal8Bit().constData()); if(deviceDescription.contains(QLatin1String("Default Audio Device"))) devices.append(deviceName.toLocal8Bit().constData()); } @@ -457,6 +459,9 @@ QList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) if (idx > 0) devices.append("default"); #endif + if (devices.size() == 0 && allDevices.size() > 0) + return allDevices; + return devices; }
Не могу этот патч применить никак - пробовал разные варианты - ругается то на отсутствие заголовка то на отдельные строки - ключ -u для указания формата использовал - может кто-нибудь подсказать как его применить или другие идеи на счет отсутствия устройств вывода?
Название: Re: QAudioOutput
Отправлено: break от Декабрь 19, 2009, 14:29
Выкачал из git - вроде последнюю версию Qt - собрал оттуда QtMultimedia - не работает! Кто нибудь пробовал под линуксом этот модуль?
Название: Re: QAudioOutput
Отправлено: break от Декабрь 19, 2009, 18:27
Приминить патч удалось - нихрена не работает все равно - прошу проверить кого нибудь, компилируемый пример вкладываю, особенно интересно под ubuntu linux...
Если у кого то еще не заработает буду писать в баг репорт - в исходниках возможно прийдется изменить полный путь к файлу - файл также в архиве...
Жду ваших тестов!
Название: Re: QAudioOutput
Отправлено: break от Декабрь 20, 2009, 13:52
Проверит кто нибудь или нет?
Название: Re: QAudioOutput
Отправлено: Пантер от Декабрь 20, 2009, 16:25
C++ (Qt) #include <QFile> #include <QAudioFormat> #include <QAudioOutput> #include <QDebug> #include <QSound> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); foreach(const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) qDebug() << "Device name: " << deviceInfo.deviceName(); QFile inputFile; inputFile.setFileName("main_compressor_work.wav"); inputFile.open(QIODevice::ReadOnly); QAudioFormat format; // Set up the format, eg. format.setFrequency(8000); format.setChannels(1); format.setSampleSize(8); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::UnSignedInt); QAudioOutput *audio = new QAudioOutput( format, 0); //connect(audio,SIGNAL(stateChanged(QAudio::State)),SLOT(finishedPlaying(QAudio::State))); audio->start(&inputFile); return a.exec(); }
Вот так жуткое шипение выдает. :) ОС: Gentoo.
Название: Re: QAudioOutput
Отправлено: break от Декабрь 22, 2009, 21:09
Вот так жуткое шипение выдает. спасибо. Шипение все правильно - просто формат звука и заднный в коде не совпадал (чатота, размер семпла) В последней версии из Git проблеима решена все работает.
|