vijayQt
18th August 2011, 13:48
I am initializing audio device before writing to QIODevice.
Here is my code:
initAudioDevice() {
QAudioFormat audioFormat;
audioFormat.setChannelCount(mAudioCodecCtx->channels);
audioFormat.setSampleRate(mAudioCodecCtx->sample_rate);
audioFormat.setSampleSize(16);
audioFormat.setByteOrder(QAudioFormat::LittleEndia n);
audioFormat.setSampleType(QAudioFormat::SignedInt) ;
QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
if (!info.isFormatSupported(audioFormat))
{
qWarning() << "Default format not supported - trying to use nearest";
audioFormat = info.nearestFormat(audioFormat);
}
mAudioOutput = new QAudioOutput(info, audioFormat, this);
mIOOutput = mAudioOutput->start();
}
I am using libavcodec decoder to decode audio frames and writting decoded audio buf to "mIOOutput->write()"
mIOOutput->write((char *)mAudioBuffer, mAudioSize);
Here my problem is, Audio is not playing properly.
1. Am I missing anything here?
2. I am feeling, while initializing I am missing some thing. Is it?
Please help me.
Thanks in advance.
Here is my code:
initAudioDevice() {
QAudioFormat audioFormat;
audioFormat.setChannelCount(mAudioCodecCtx->channels);
audioFormat.setSampleRate(mAudioCodecCtx->sample_rate);
audioFormat.setSampleSize(16);
audioFormat.setByteOrder(QAudioFormat::LittleEndia n);
audioFormat.setSampleType(QAudioFormat::SignedInt) ;
QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
if (!info.isFormatSupported(audioFormat))
{
qWarning() << "Default format not supported - trying to use nearest";
audioFormat = info.nearestFormat(audioFormat);
}
mAudioOutput = new QAudioOutput(info, audioFormat, this);
mIOOutput = mAudioOutput->start();
}
I am using libavcodec decoder to decode audio frames and writting decoded audio buf to "mIOOutput->write()"
mIOOutput->write((char *)mAudioBuffer, mAudioSize);
Here my problem is, Audio is not playing properly.
1. Am I missing anything here?
2. I am feeling, while initializing I am missing some thing. Is it?
Please help me.
Thanks in advance.