我正在尝试在我的应用程序中显示音量指示器,但首先我需要监视系统的当前音量。
我正在使用观察者,虽然打印语句显示了正确的值,但UI从未显示。
import SwiftUI
import MediaPlayer
struct ContentView: View {
@State var vol: Float = 1.0
// Audio session object
private let session = AVAudioSession.sharedInstance()
// Observer
private var progressObserver: NSKeyValueObservation!
init() {
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.ambient)
try session.setActive(true, options: .notifyOthersOnDeactivation)
self.vol = 1.0
} catch {
print("cannot activate session")
}
progressObserver = session.observe(\.outputVolume) { [self] (session, value) in
print(session.outputVolume)
self.vol = session.outputVolume
}
}
var body: some View {
Text(String(self.vol))
}
}
// 已修复(将类别设置为环境音乐)(请参见上面的代码更新) 此外,每次启动应用程序时,它都会停止当前正在播放的所有音乐。