ios - 在 iOS 11 中播放音乐库时更改和隐藏音量 HUD(音量叠加)

标签 ios swift volume mpmusicplayercontroller

我正在使用 MPMusicPlayerController.applicationQueuePlayer 来控制播放内部音乐。

extension MPVolumeView {
    var volumeSlider: UISlider? {
        showsRouteButton = false
        showsVolumeSlider = false
        isHidden = true
        for subview in subviews where subview is UISlider {
            let slider =  subview as! UISlider
            slider.isContinuous = false
            slider.value = AVAudioSession.sharedInstance().outputVolume
            return slider
        }
        return nil
    }
}

let player = MPMusicPlayerController.applicationQueuePlayer
player.shuffleMode = .off
player.setQueue(with: MPMediaItemCollection(items: [mediaItem]))
player.play()

let volView = MPVolumeView()
view.addSubview(volView)
UIApplication.shared.keyWindow?.insertSubview(volView, at: 0)
volView.frame.origin.x = -1000

/* I also tried:
MPVolumeView(frame: .zero)
MPVolumeView(frame: CGRect(x: -1000, y: -1000, width: 0, height: 0))
none of them works.
*/

// get the slider to change to volume
let slider = volView.volumeSlider!

// set the volume. when I change, the volume HUD appears. but I want to stop appearing.
slider.setValue(1, animated: false)

我想知道在更改音量时,如何停止弹出音量 HUD?

已编辑。

最佳答案

系统音量是用户体验 任何你可以使用它的方式

UIApplication.shared.keyWindow?.insertSubview(MPVolumeView(), at: 0)

关于ios - 在 iOS 11 中播放音乐库时更改和隐藏音量 HUD(音量叠加),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317085/

相关文章:

ios - 应用更新发布时plist文件会被覆盖吗

iphone - 如何在 AVAudioPlayers 之间交叉淡入淡出

ios - GIDSignInButton - 以 NSException 类型的未捕获异常终止

swift - 从 Observable 中只获取一个值

ios - 神奇记录 MR_createEntity() 返回 nil 对象,使用 swift

c++ - 如何使用 native 代码中的 JNI 在 Android 上获取音频音量?

docker - 如何解决 "docker: Error response from daemon: VolumeDriver.Mount: exit status 1%!(EXTRA []interface {}=[])."

ios - 在Swift中有效地在Array上生成连续且相同的数字

ios 谁调用了那个 segue?

ios - Xcode调试器在集成Fabrics iOS SDK时不显示变量的值