Browse Source

修复iOS的音乐 恢复代码

weicu
liwei1dao 12 months ago
parent
commit
4e644d0138
  1. 10
      local_plugins/chat_api/ios/chat_api/Sources/chat_api/MusicSystemFunctionHandler.swift
  2. 25
      local_plugins/music_service/ios/music_service/Sources/music_service/MusicService.swift

10
local_plugins/chat_api/ios/chat_api/Sources/chat_api/MusicSystemFunctionHandler.swift

@ -30,9 +30,9 @@ class MusicSystemFunctionHandler {
) )
// 注册媒体控制函数 // 注册媒体控制函数
registerMediaPlayFunction(client: client) registerMediaResumeFunction(client: client)
registerMediaPauseFunction(client: client) registerMediaPauseFunction(client: client)
registerMediaCloseFunction(client: client) // registerMediaCloseFunction(client: client)
registerMediaPreviousFunction(client: client) registerMediaPreviousFunction(client: client)
registerMediaNextFunction(client: client) registerMediaNextFunction(client: client)
} }
@ -99,7 +99,7 @@ private class MusicSearchHandler: FunctionHandler {
} }
/// 注册媒体播放函数 /// 注册媒体播放函数
private func registerMediaPlayFunction(client: MCPClient) { private func registerMediaResumeFunction(client: MCPClient) {
let parameters: [String: Any] = [ let parameters: [String: Any] = [
"type": "object", "type": "object",
"properties": [:], "properties": [:],
@ -195,14 +195,14 @@ private class MediaPlayHandler: FunctionHandler {
/// 媒体暂停处理器 /// 媒体暂停处理器
private class MediaPauseHandler: FunctionHandler { private class MediaPauseHandler: FunctionHandler {
func handle(arguments: [String: Any]) async throws -> String { func handle(arguments: [String: Any]) async throws -> String {
NotificationCenter.default.post(name: NSNotification.Name("MediaStop"), object: nil) NotificationCenter.default.post(name: NSNotification.Name("MediaPause"), object: nil)
return "{\"broadcast\": false,\"result\": \"已停止音乐播放\"}" return "{\"broadcast\": false,\"result\": \"已停止音乐播放\"}"
} }
} }
/// 媒体暂停处理器 /// 媒体暂停处理器
private class MediaCloseHandler: FunctionHandler { private class MediaCloseHandler: FunctionHandler {
func handle(arguments: [String: Any]) async throws -> String { func handle(arguments: [String: Any]) async throws -> String {
NotificationCenter.default.post(name: NSNotification.Name("MediaPause"), object: nil) NotificationCenter.default.post(name: NSNotification.Name("MediaStop"), object: nil)
return "{\"broadcast\": false,\"result\": \"已暂停音乐播放\"}" return "{\"broadcast\": false,\"result\": \"已暂停音乐播放\"}"
} }
} }

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

@ -1052,28 +1052,3 @@ public class MusicService: NSObject {
) )
} }
} }
// 实现 CXCallObserverDelegate
//extension MusicService: CXCallObserverDelegate {
// public func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
// // 检测通话开始(来电被接听 或 呼出被接通)
// if call.hasConnected && !call.hasEnded {
// // 记录播放状态(避免重复标记,仅在通话刚连接时标记)
// if !call.hasEnded { // 确保是通话开始而非结束
// self.interruptedDuringPlayback = isPlaying
// if isPlaying {
// print("检测到通话开始,暂停音乐")
// pause()
// }
// }
// }
// // 通话结束且当前无其他活跃通话
// if call.hasEnded && call.hasConnected {
// // 确保播放器处于暂停状态再恢复
// if self.interruptedDuringPlayback {
// print("检测到通话结束,恢复音乐")
// self.resume()
// }
// }
// }
//}

Loading…
Cancel
Save