我最终的解决方法是这样的:
WKInterfaceVolumeControl在 SwiftUI 中使用它struct VolumeView: WKInterfaceObjectRepresentable {
typealias WKInterfaceObjectType = WKInterfaceVolumeControl
func makeWKInterfaceObject(context: Self.Context) -> WKInterfaceVolumeControl {
let view = WKInterfaceVolumeControl(origin: .local)
Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { [weak view] timer in
if let view = view {
view.focus()
} else {
timer.invalidate()
}
}
DispatchQueue.main.async {
view.focus()
}
return view
}
func updateWKInterfaceObject(_ wkInterfaceObject: WKInterfaceVolumeControl, context: WKInterfaceObjectRepresentableContext<VolumeView>) {
}
}
Run Code Online (Sandbox Code Playgroud)
VolumeView到视图层次结构中opacity = 0。 .background(VolumeView().opacity(0))
Run Code Online (Sandbox Code Playgroud)
volumeObserver = AVAudioSession.sharedInstance().observe(\.outputVolume) { session, _ in
print("Output volume: \(session.outputVolume)")
self.volume = Double(session.outputVolume)
}
Run Code Online (Sandbox Code Playgroud)
有了它,您可以更新一些其他视图,但请记住,尤其是在较旧的版本上,更新并不总是(立即)发生。
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |