Browse Source

去处没用的音源切换,修复音量调整吧qq音乐干掉的情况

weicu
fdp 1 year ago
parent
commit
240a4ce122
  1. 3
      local_plugins/agent_service/ios/agent_service/Sources/agent_service/AudioSessionHub.swift
  2. 20
      local_plugins/music_service/ios/music_service/Sources/music_service/MusicService.swift
  3. 15
      local_plugins/realtime/ios/realtime/Sources/realtime/RealtimeAudioManager.swift

3
local_plugins/agent_service/ios/agent_service/Sources/agent_service/AudioSessionHub.swift

@ -543,9 +543,8 @@ public class AudioSessionHub {
private func performVolumeControlWithMPVolumeView(action: VolumeControlAction, value: Float?, completion: @escaping (Bool, String) -> Void) {
// 确保在有音频会话的情况下进行音量控制
do {
try audioSession.setCategory(.playback, mode: .videoChat, options: [.defaultToSpeaker, .allowBluetooth,.mixWithOthers])
try audioSession.setActive(true)
// 设置为播放类别,这样音量控制才能生效
try audioSession.setCategory(.playback, mode: .default, options: [])
} catch {
os_log("设置音频会话失败: %{public}@", log: logger, type: .error, error.localizedDescription)
}

20
local_plugins/music_service/ios/music_service/Sources/music_service/MusicService.swift

@ -34,7 +34,7 @@ public class MusicService: NSObject {
private override init() {
super.init()
setupRemoteCommandCenter()
setupAudioSession()
//setupAudioSession()
}
public func initialize(serviceUrl: String, userToken: String) {
@ -44,15 +44,15 @@ public class MusicService: NSObject {
}
// MARK: - 音频会话设置
private func setupAudioSession() {
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.allowAirPlay, .allowBluetooth])
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("设置音频会话失败: \(error)")
}
}
// // MARK: - 音频会话设置
// private func setupAudioSession() {
// do {
// try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.allowAirPlay, .allowBluetooth])
// try AVAudioSession.sharedInstance().setActive(true)
// } catch {
// print("设置音频会话失败: \(error)")
// }
// }
// MARK: - 基础播放控制
func getCurrentUrlString() -> String? {

15
local_plugins/realtime/ios/realtime/Sources/realtime/RealtimeAudioManager.swift

@ -38,22 +38,9 @@ class RealtimeAudioManager {
init() {
playbackQueue = DispatchQueue(label: "com.realtime.playback", qos: .userInitiated)
setupAudioSession()
}
/// 设置音频会话
private func setupAudioSession() {
do {
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord,
mode: .default,
options: [.defaultToSpeaker, .allowBluetooth])
try session.setActive(true)
os_log("音频会话设置成功", log: log, type: .info)
} catch {
os_log("音频会话设置失败: %@", log: log, type: .error, error.localizedDescription)
}
}
/// 初始化音频管理器
func initialize(config: AudioConfig) -> Bool {

Loading…
Cancel
Save