summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/coreaudio/coreaudiodeviceinfo.mm13
-rw-r--r--src/plugins/coreaudio/coreaudioinput.mm5
-rw-r--r--src/plugins/coreaudio/coreaudiooutput.mm7
-rw-r--r--src/plugins/coreaudio/coreaudiosessionmanager.mm5
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()