void S60AudioEncoderControl::setAudioSettings(const QAudioEncoderSettings &settings) { TRACE("S60AudioEncoderControl::setAudioSettings" << qtThisPtr() << "encodingMode" << settings.encodingMode() << "codec" << settings.codec() << "bitRate" << settings.bitRate() << "channelCount" << settings.channelCount() << "sampleRate" << settings.sampleRate() << "quality" << settings.quality()); QAudioFormat fmt = m_session->format(); if (settings.encodingMode() == QtMultimediaKit::ConstantQualityEncoding) { fmt.setCodec(settings.codec()); setQuality(settings.quality(), fmt); if (settings.sampleRate() > 0) fmt.setFrequency(settings.sampleRate()); if (settings.channelCount() > 0) fmt.setChannels(settings.channelCount()); } else { if (settings.sampleRate() == 8000) { fmt.setSampleType(QAudioFormat::UnSignedInt); fmt.setSampleSize(8); } else { fmt.setSampleType(QAudioFormat::SignedInt); fmt.setSampleSize(16); } fmt.setCodec(settings.codec()); fmt.setFrequency(settings.sampleRate()); fmt.setChannels(settings.channelCount()); } m_session->setFormat(fmt); m_session->setEncoderSettings(settings); m_settings = settings; }
void AudioEncoderControl::setAudioSettings(const QAudioEncoderSettings &settings) { QAudioFormat fmt = m_session->format(); if (settings.encodingMode() == QMultimedia::ConstantQualityEncoding) { if (settings.quality() == QMultimedia::LowQuality) { fmt.setSampleSize(8); fmt.setChannelCount(1); fmt.setSampleRate(8000); fmt.setSampleType(QAudioFormat::UnSignedInt); } else if (settings.quality() == QMultimedia::NormalQuality) { fmt.setSampleSize(16); fmt.setChannelCount(1); fmt.setSampleRate(22050); fmt.setSampleType(QAudioFormat::SignedInt); } else { fmt.setSampleSize(16); fmt.setChannelCount(1); fmt.setSampleRate(44100); fmt.setSampleType(QAudioFormat::SignedInt); } } else { fmt.setChannelCount(settings.channelCount()); fmt.setSampleRate(settings.sampleRate()); if (settings.sampleRate() == 8000 && settings.bitRate() == 8000) { fmt.setSampleType(QAudioFormat::UnSignedInt); fmt.setSampleSize(8); } else { fmt.setSampleSize(16); fmt.setSampleType(QAudioFormat::SignedInt); } } fmt.setCodec("audio/pcm"); m_session->setFormat(fmt); m_settings = settings; }