Qt5中的QAudioOutput没有发出任何声音

4905 Views

我在kubuntu12.10下工作,并开发了一个应用程序,我需要在其中生成一些声音到QIODevice中,然后用QAudioOutput播放它。

我已经阅读了周围所有关于如何正确地做到这一点的文章,我认为已经做到了。

到目前为止,我已经做到了:

代码语言:javascript运行复制QVector * soundData = SoundGenerator::getSound();

soundBuffer->open(QIODevice::ReadWrite);

QDataStream writeStream(soundBuffer);

foreach(double d, *soundData) {

char value = d * (2 << 7);

// qDebug() << "Value : " << (short int)value;

writeStream << value;

}

QAudioFormat format;

// Set up the format, eg.

format.setSampleRate(SoundGenerator::getAudioSampleRate());

format.setChannelCount(1);

format.setSampleSize(8);

format.setCodec("audio/pcm");

format.setByteOrder(QAudioFormat::LittleEndian);

format.setSampleType(QAudioFormat::SignedInt);

QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());

audio = new QAudioOutput(format, this);

if (audio->error() != QAudio::NoError) {

qDebug() << "Problem playing sound";

}

connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(aboutToFinish(QAudio::State)));我还调用了音频->start(SoundBuffer)

-从另一个插槽初始化QAudioOutput时没有任何错误

而且我根本没有声音(所有其他应用程序都有声音,我正在将一个Qt4应用程序移植到Qt5,在Qt4中,Phonon一切正常)

aboutToFinish槽在乞讨时被调用,状态为ActiveState,调用QAudioOutput::error时调用NoError,但它不再被调用,即使等待的时间远远超过预期的生成声音时长。

声音生成过程是没有问题的,它已经通过编写wav文件进行了测试,并且工作正常。

此外,我已经从Qt的源代码构建了多媒体示例,当涉及到纯音频时,没有输出(例如在sprectrum示例中),另一方面,视频可以完美地播放声音。

这方面有什么已知的问题吗?那是个bug吗?我做错了什么吗?

提前感谢;)

[酒馆告示]B格猫皇家庆典[复制链接]
石家庄妙指仙境