通过蓝牙的iOS音量控制

时间:2018-10-17 10:45:21

标签: ios iphone uikit

我是iOS开发人员的新手,目前正在开发一款由Bluetooth外设控制的应用程序。如果外围设备发送信号,则电话需要增加其系统音量。我只找到带有滑块的示例。有什么办法可以增加系统容量?帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

没有支持的方法来修改系统音量。这已被有意删除(过去是受支持的方式)。

有一种不推荐使用的方法(自iOS 7起)目前有效,但在以后的任何发行版中都可能消失。您可以使用[[MPMusicPlayerController systemMusicPlayer] setVolume:]来设置主音量。

支持更改系统音量的新方法是打开MPVolumeView,然后让用户修改音量。但是没有编程接口。不过,您可以 在视图中搜寻滑块并进行调整。这确实很脆弱;有时,不同OS版本之间的结构会发生变化,Apple可能会在将来将该视图移至另一个过程中(因为他们已经使用了其他不想让您弄乱的视图)。我不推荐这种方法,也不打算编写代码来实现(因为不赞成使用的setVolume:仍然可以使用)。但是有可能。

同样,这些都是不受支持的内容,Apple可能会拒绝您的应用。

答案 1 :(得分:0)

var currentVolume: Float = 0.0
let mpVolumeView = MPVolumeView()
func volumeSliderControl(_ volume: Float) {
    let volumeSlider = (mpVolumeView.subviews.filter { NSStringFromClass($0.classForCoder) == "MPVolumeSlider" }.first as! UISlider)
    currentVolume = currentVolume + volume
    currentVolume = currentVolume > 1.0 ? 1.0 : currentVolume < 0.0 ? 0.0 : currentVolume
    debugLog("currentVolume: \(currentVolume)")
    volumeSlider.setValue(currentVolume, animated: false)
    volumeSlider.sendActions(for: .valueChanged)
}

对于以上功能,只需在Float中将音量范围从0传递到1 此代码仅用于控制音乐/媒体音量。