void S60AudioEncoderControl::setAudioSettings(const QAudioEncoderSettings &settings) { 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_settings = settings; }
QList<int> QAndroidAudioEncoderSettingsControl::supportedSampleRates(const QAudioEncoderSettings &settings, bool *continuous) const { if (continuous) *continuous = false; if (settings.isNull() || settings.codec().isNull() || settings.codec() == QLatin1String("aac")) { return QList<int>() << 8000 << 11025 << 12000 << 16000 << 22050 << 24000 << 32000 << 44100 << 48000 << 96000; } else if (settings.codec() == QLatin1String("amr-nb")) { return QList<int>() << 8000; } else if (settings.codec() == QLatin1String("amr-wb")) { return QList<int>() << 16000; } return QList<int>(); }