diff --git a/ios/Video/AudioSessionManager.swift b/ios/Video/AudioSessionManager.swift index da047820..dfe16de0 100644 --- a/ios/Video/AudioSessionManager.swift +++ b/ios/Video/AudioSessionManager.swift @@ -7,8 +7,12 @@ class AudioSessionManager { private var videoViews = NSHashTable.weakObjects() private var isAudioSessionActive = false private var remoteControlEventsActive = false + private var isAudioSessionManagementForcedDisabled = false private var isAudioSessionManagementDisabled: Bool { + if isAudioSessionManagementForcedDisabled { + return true + } // If no views are registered, disable audio session management if videoViews.allObjects.isEmpty { return true @@ -43,6 +47,10 @@ class AudioSessionManager { // MARK: - Public API + func setIsAudioSessionManagementForcedDisabled(disabled: Bool) { + isAudioSessionManagementForcedDisabled = disabled + } + func registerView(view: RCTVideo) { if videoViews.contains(view) { return diff --git a/ios/Video/PublicAudioSessionManager.swift b/ios/Video/PublicAudioSessionManager.swift new file mode 100644 index 00000000..a6989dee --- /dev/null +++ b/ios/Video/PublicAudioSessionManager.swift @@ -0,0 +1,9 @@ +import Foundation + +@objc +public class PublicAudioSessionManager: NSObject { + @objc + public static func setIsAudioSessionManagementDisabled(_ disabled: Bool) { + AudioSessionManager.shared.setIsAudioSessionManagementForcedDisabled(disabled: disabled) + } +}