iOS 9:如何在不显示系统条形弹出窗口的情况下以编程方式更改音量? [英] iOS 9: How to change volume programmatically without showing system sound bar popup?

查看:120
本文介绍了iOS 9:如何在不显示系统条形弹出窗口的情况下以编程方式更改音量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须在iPad上更改音量并使用此代码:

I have to change the volume on iPad and using this code:

[[MPMusicPlayerController applicationMusicPlayer] setVolume:0];

但这会改变音量并在iPad上显示系统音量条。 如何在不显示音量条的情况下更改声音?

But this changing volume and showing system volume bar on iPad. How to change the sound without showing the volume bar?

我知道, setVolume:已弃用,并且每个人都说要使用 MPVolumeView 。如果这是解决我的问题的唯一方法,那么如何使用 MPVolumeView 更改音量?我没有在 MPVolumeView 中看到任何改变声音的方法。我应该和一起使用另一个类吗?MPVolumeView

I know, setVolume: is deprecated, and everybody says to use MPVolumeView. If this is the only way to solve my problem, then how to change the volume using MPVolumeView? I don't see any method in MPVolumeView that changes the sound.
Should I use some another class together with MPVolumeView?

但是最好使用 MPMusicPlayerController

感谢您的建议!

推荐答案

MPVolumeView 有一个滑块,通过更改滑块的值,您可以更改设备音量。我写了一个 MPVolumeView 扩展名来轻松访问滑块:

MPVolumeView has a slider, and by changing the value of the slider, you can change the device volume. I wrote an MPVolumeView extension to easily access the slider:

extension MPVolumeView {
    var volumeSlider:UISlider {
        self.showsRouteButton = false
        self.showsVolumeSlider = false
        self.hidden = true
        var slider = UISlider()
        for subview in self.subviews {
            if subview.isKindOfClass(UISlider){
                slider = subview as! UISlider
                slider.continuous = false
                (subview as! UISlider).value = AVAudioSession.sharedInstance().outputVolume
                return slider
            }
        }
        return slider
    }
}

这篇关于iOS 9:如何在不显示系统条形弹出窗口的情况下以编程方式更改音量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆