feat(ios): add PublicAudioSessionManager for audio session management (#4747)

This commit is contained in:
Alex Shumihin
2025-11-05 12:58:32 +01:00
committed by GitHub
parent 05cd5972c2
commit f2afd16d0b
2 changed files with 17 additions and 0 deletions

View File

@@ -7,8 +7,12 @@ class AudioSessionManager {
private var videoViews = NSHashTable<RCTVideo>.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

View File

@@ -0,0 +1,9 @@
import Foundation
@objc
public class PublicAudioSessionManager: NSObject {
@objc
public static func setIsAudioSessionManagementDisabled(_ disabled: Bool) {
AudioSessionManager.shared.setIsAudioSessionManagementForcedDisabled(disabled: disabled)
}
}