gpt4 book ai didi

ios - AVAudioSession 总是返回相同的 outputVolume

转载 作者:可可西里 更新时间:2023-11-01 02:14:12 26 4
gpt4 key购买 nike

我有一个 watchOS 应用程序通过以下方式从 iPhone 父应用程序请求当前音量:

 session?.sendMessage(["getVolume":1], replyHandler: {
replyDict in
if let currentVolume = replyDict["currentVolume"] as? Float{
NSLog("Current volume received from phone with value: \(currentVolume)")
}
}, errorHandler: {
(error) -> Void in
NSLog("Error: :\(error)")
// iOS app failed to get message. Send it in the background
//self.session?.transferUserInfo(["getVolume":1])
})

iPhone 应用程序是这样处理的:

func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
NSLog("Received a message")
if let _ = message["getVolume"] as? Int{
replyHandler(["currentVolume":AVAudioSession.sharedInstance().outputVolume])
}
else{
replyHandler([:])
}
}

这始终会返回手机在第一次请求时具有的相同输出音量。

我调查了几件事,比如后台请求是否有某种缓存,但它始终是一个返回新值的新调用。

是否有任何解决方法可以通过不同的方式获取系统音量,或者是否有解决方案如何让它与 AVAudioSession 一起工作?

最佳答案

这不是 WatchKit 或 watchOS 本身的问题,因为我在常规 iOS 应用程序中遇到过这种情况。

我必须激活我的应用程序的 Audio Session 才能观察音量的变化:

try? AVAudioSession.sharedInstance().setActive(true)

关于ios - AVAudioSession 总是返回相同的 outputVolume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com