聆听音量按钮按下的正确方式(iOS 15)

aaa*_*aav 13 avaudioplayer ios avaudiosession swift

我用过

NotificationCenter.default.addObserver(self, selector: #selector(volumeChanged(_:)), name: NSNotification.Name(rawValue: "AVSystemController_SystemVolumeDidChangeNotification"), object: nil)
Run Code Online (Sandbox Code Playgroud)

过去可以听到音量控制变化,但这在 iOS 15 中不再起作用。

仅当您不关心用户在最大音量时按下音量时,下面的替代代码才有效。但是,我确实想知道每次按下按钮时的情况。

AVAudioSession.sharedInstance().addObserver(self, forKeyPath: "outputVolume", options: NSKeyValueObservingOptions.new, context: nil)
Run Code Online (Sandbox Code Playgroud)

即使音量处于最大/最小,聆听用户按下音量控制按钮的正确方法是什么?

Jay*_*tel 1

您需要使用媒体播放器库。

只是import MediaPlayer

let volumeView = MPVolumeView(frame: CGRect.zero)
self.view.addSubview(volumeView)
Run Code Online (Sandbox Code Playgroud)

无论音量大小如何,您都会收到每次按下的事件

  • 它在 iOS 15.1.1 中不起作用 (2认同)