summaryrefslogtreecommitdiffstats
path: root/platform/ios
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios')
-rw-r--r--platform/ios/app_delegate.mm33
1 files changed, 31 insertions, 2 deletions
diff --git a/platform/ios/app_delegate.mm b/platform/ios/app_delegate.mm
index 38846e7508..8a16f8fcc1 100644
--- a/platform/ios/app_delegate.mm
+++ b/platform/ios/app_delegate.mm
@@ -51,6 +51,15 @@ extern void ios_finish();
@implementation AppDelegate
+enum {
+ SESSION_CATEGORY_AMBIENT,
+ SESSION_CATEGORY_MULTI_ROUTE,
+ SESSION_CATEGORY_PLAY_AND_RECORD,
+ SESSION_CATEGORY_PLAYBACK,
+ SESSION_CATEGORY_RECORD,
+ SESSION_CATEGORY_SOLO_AMBIENT
+};
+
static ViewController *mainViewController = nil;
+ (ViewController *)viewController {
@@ -92,8 +101,28 @@ static ViewController *mainViewController = nil;
mainViewController = viewController;
- // prevent to stop music in another background app
- [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
+ int sessionCategorySetting = GLOBAL_GET("audio/general/ios/session_category");
+
+ // Initialize with default Ambient category.
+ AVAudioSessionCategory category = AVAudioSessionCategoryAmbient;
+
+ if (sessionCategorySetting == SESSION_CATEGORY_MULTI_ROUTE) {
+ category = AVAudioSessionCategoryMultiRoute;
+ } else if (sessionCategorySetting == SESSION_CATEGORY_PLAY_AND_RECORD) {
+ category = AVAudioSessionCategoryPlayAndRecord;
+ } else if (sessionCategorySetting == SESSION_CATEGORY_PLAYBACK) {
+ category = AVAudioSessionCategoryPlayback;
+ } else if (sessionCategorySetting == SESSION_CATEGORY_RECORD) {
+ category = AVAudioSessionCategoryRecord;
+ } else if (sessionCategorySetting == SESSION_CATEGORY_SOLO_AMBIENT) {
+ category = AVAudioSessionCategorySoloAmbient;
+ }
+
+ if (GLOBAL_GET("audio/general/ios/mix_with_others")) {
+ [[AVAudioSession sharedInstance] setCategory:category withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
+ } else {
+ [[AVAudioSession sharedInstance] setCategory:category error:nil];
+ }
return YES;
}