diff options
4 files changed, 14 insertions, 1 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/multimedia/QtAudioDeviceManager.java b/src/android/jar/src/org/qtproject/qt/android/multimedia/QtAudioDeviceManager.java index c2a8a0a51..5359b08df 100644 --- a/src/android/jar/src/org/qtproject/qt/android/multimedia/QtAudioDeviceManager.java +++ b/src/android/jar/src/org/qtproject/qt/android/multimedia/QtAudioDeviceManager.java @@ -252,7 +252,7 @@ public class QtAudioDeviceManager setAudioOutput(AudioManager.MODE_IN_COMMUNICATION, true, false); return true; case AudioDeviceInfo.TYPE_BUILTIN_SPEAKER: - setAudioOutput(AudioManager.MODE_NORMAL, false, true); + setAudioOutput(AudioManager.STREAM_MUSIC, false, true); return true; case AudioDeviceInfo.TYPE_WIRED_HEADSET: case AudioDeviceInfo.TYPE_WIRED_HEADPHONES: diff --git a/src/multimedia/platform/android/audio/qandroidaudiosink.cpp b/src/multimedia/platform/android/audio/qandroidaudiosink.cpp index f5923a403..d7a67f207 100644 --- a/src/multimedia/platform/android/audio/qandroidaudiosink.cpp +++ b/src/multimedia/platform/android/audio/qandroidaudiosink.cpp @@ -356,6 +356,9 @@ bool QAndroidAudioSink::preparePlayer() else return true; + if (!QOpenSLESEngine::setAudioOutput(m_deviceName)) + qWarning() << "Unable to setup Audio Output Device"; + SLEngineItf engine = QOpenSLESEngine::instance()->slEngine(); if (!engine) { qWarning() << "No engine"; diff --git a/src/multimedia/platform/android/audio/qopenslesengine.cpp b/src/multimedia/platform/android/audio/qopenslesengine.cpp index de3912e91..6032c06cc 100644 --- a/src/multimedia/platform/android/audio/qopenslesengine.cpp +++ b/src/multimedia/platform/android/audio/qopenslesengine.cpp @@ -147,6 +147,15 @@ QList<QAudioDevice> QOpenSLESEngine::availableDevices(QAudioDevice::Mode mode) return devices; } +bool QOpenSLESEngine::setAudioOutput(const QByteArray &deviceId) +{ + return QJniObject::callStaticMethod<jboolean>( + "org/qtproject/qt/android/multimedia/QtAudioDeviceManager", + "setAudioOutput", + "(I)Z", + deviceId.toInt()); +} + static bool hasRecordPermission() { const auto recordPerm = QtAndroidPrivate::checkPermission(QtAndroidPrivate::Microphone); diff --git a/src/multimedia/platform/android/audio/qopenslesengine_p.h b/src/multimedia/platform/android/audio/qopenslesengine_p.h index 3adf34594..0f9781bd5 100644 --- a/src/multimedia/platform/android/audio/qopenslesengine_p.h +++ b/src/multimedia/platform/android/audio/qopenslesengine_p.h @@ -75,6 +75,7 @@ public: static SLAndroidDataFormat_PCM_EX audioFormatToSLFormatPCM(const QAudioFormat &format); static QList<QAudioDevice> availableDevices(QAudioDevice::Mode mode); + static bool setAudioOutput(const QByteArray &deviceId); QList<int> supportedChannelCounts(QAudioDevice::Mode mode) const; QList<int> supportedSampleRates(QAudioDevice::Mode mode) const; |