diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/coreaudio/coreaudiodeviceinfo.mm | 13 | ||||
-rw-r--r-- | src/plugins/coreaudio/coreaudioinput.mm | 5 | ||||
-rw-r--r-- | src/plugins/coreaudio/coreaudiooutput.mm | 7 | ||||
-rw-r--r-- | src/plugins/coreaudio/coreaudiosessionmanager.mm | 5 |
4 files changed, 12 insertions, 18 deletions
diff --git a/src/plugins/coreaudio/coreaudiodeviceinfo.mm b/src/plugins/coreaudio/coreaudiodeviceinfo.mm index 594ea225b..2cc99f5f9 100644 --- a/src/plugins/coreaudio/coreaudiodeviceinfo.mm +++ b/src/plugins/coreaudio/coreaudiodeviceinfo.mm @@ -60,11 +60,6 @@ CoreAudioDeviceInfo::CoreAudioDeviceInfo(const QByteArray &device, QAudio::Mode m_deviceId = AudioDeviceID(deviceID); #else //iOS m_device = device; - if (mode == QAudio::AudioInput) { - if (CoreAudioSessionManager::instance().category() != CoreAudioSessionManager::PlayAndRecord) { - CoreAudioSessionManager::instance().setCategory(CoreAudioSessionManager::PlayAndRecord); - } - } #endif } @@ -336,14 +331,6 @@ QList<QByteArray> CoreAudioDeviceInfo::availableDevices(QAudio::Mode mode) } } #else //iOS - if (mode == QAudio::AudioInput) { - if (CoreAudioSessionManager::instance().category() != CoreAudioSessionManager::PlayAndRecord) { - CoreAudioSessionManager::instance().setCategory(CoreAudioSessionManager::PlayAndRecord); - } - } - - CoreAudioSessionManager::instance().setActive(true); - if (mode == QAudio::AudioOutput) return CoreAudioSessionManager::instance().outputDevices(); if (mode == QAudio::AudioInput) diff --git a/src/plugins/coreaudio/coreaudioinput.mm b/src/plugins/coreaudio/coreaudioinput.mm index f7d511d27..7f305168f 100644 --- a/src/plugins/coreaudio/coreaudioinput.mm +++ b/src/plugins/coreaudio/coreaudioinput.mm @@ -483,6 +483,11 @@ CoreAudioInput::~CoreAudioInput() bool CoreAudioInput::open() { +#if defined(Q_OS_IOS) + CoreAudioSessionManager::instance().setCategory(CoreAudioSessionManager::PlayAndRecord, CoreAudioSessionManager::MixWithOthers); + CoreAudioSessionManager::instance().setActive(true); +#endif + if (m_isOpen) return true; diff --git a/src/plugins/coreaudio/coreaudiooutput.mm b/src/plugins/coreaudio/coreaudiooutput.mm index caa4a1abb..b8addc1cf 100644 --- a/src/plugins/coreaudio/coreaudiooutput.mm +++ b/src/plugins/coreaudio/coreaudiooutput.mm @@ -549,6 +549,13 @@ OSStatus CoreAudioOutput::renderCallback(void *inRefCon, AudioUnitRenderActionFl bool CoreAudioOutput::open() { +#if defined(Q_OS_IOS) + // Set default category to Ambient (implies MixWithOthers). This makes sure audio stops playing + // if the screen is locked or if the Silent switch is toggled. + CoreAudioSessionManager::instance().setCategory(CoreAudioSessionManager::Ambient, CoreAudioSessionManager::None); + CoreAudioSessionManager::instance().setActive(true); +#endif + if (m_errorCode != QAudio::NoError) return false; diff --git a/src/plugins/coreaudio/coreaudiosessionmanager.mm b/src/plugins/coreaudio/coreaudiosessionmanager.mm index 923a1942f..6c86f0753 100644 --- a/src/plugins/coreaudio/coreaudiosessionmanager.mm +++ b/src/plugins/coreaudio/coreaudiosessionmanager.mm @@ -38,7 +38,6 @@ ****************************************************************************/ #include "coreaudiosessionmanager.h" - #import <AVFoundation/AVAudioSession.h> #import <Foundation/Foundation.h> @@ -215,10 +214,6 @@ CoreAudioSessionManager::CoreAudioSessionManager() : QObject(0) { m_sessionObserver = [[CoreAudioSessionObserver alloc] initWithAudioSessionManager:this]; - setActive(true); - // Set default category to Ambient (implies MixWithOthers). This makes sure audio stops playing - // if the screen is locked or if the Silent switch is toggled. - setCategory(CoreAudioSessionManager::Ambient, CoreAudioSessionManager::None); } CoreAudioSessionManager::~CoreAudioSessionManager() |