通过蓝牙实现iOS音量控制

通过蓝牙实现iOS音量控制,ios,iphone,uikit,Ios,Iphone,Uikit,我是iOS开发人员中的新手,目前正在开发一个由蓝牙外围设备控制的应用程序。如果外设发出信号,手机需要增加系统音量。我只找到滑块的例子。有没有办法增加系统容量?我们将不胜感激。多谢各位 var currentVolume:Float=0.0 var currentVolume: Float = 0.0 let mpVolumeView = MPVolumeView() func volumeSliderControl(_ volume: Float) { let volumeSlider

我是iOS开发人员中的新手,目前正在开发一个由蓝牙外围设备控制的应用程序。如果外设发出信号,手机需要增加系统音量。我只找到滑块的例子。有没有办法增加系统容量?我们将不胜感激。多谢各位

var currentVolume:Float=0.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)
}
设mpVolumeView=mpVolumeView() func卷滑动控制(卷:浮动){ 让volumeSlider=(mpVolumeView.subviews.filter{NSStringFromClass($0.classForCoder)==“MPVolumeSlider”}。首先是!UISlider) currentVolume=当前卷+卷 currentVolume=currentVolume>1.0?1.0:currentVolume<0.0?0.0:currentVolume 调试日志(“当前卷:\(当前卷)”) volumeSlider.setValue(当前卷,动画:false) volumeSlider.sendActions(针对:.valueChanged) }
对于上述函数,只需在浮点中传递从0到1的音量范围
此代码仅用于控制音乐/媒体音量。

不支持修改系统音量的方法。这是有意删除的(以前有支持的方式)

有一种不推荐的方式(从iOS 7开始)目前可以使用,但在将来的任何版本中都可能会消失。您可以使用
[[MPMusicLayer控制器系统MusicLayer]设置音量:
设置主音量

新支持的更改系统卷的方法是打开
MPVolumeView
,让用户修改卷。但是没有编程接口。不过,您可以在视图中搜索滑块并通过调整它们。这真的很脆弱;有时,操作系统版本之间的结构会发生变化,苹果可能会在将来将此视图转移到另一个进程中(就像他们在处理其他几个视图时所做的那样,他们不想让您弄乱这些视图)。我不推荐这种方法,也不打算编写代码来实现它(因为不推荐使用的
setVolume:
仍然有效)。但这是可能的


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

不,您无法控制iOS系统的音量。您只能使用滑块控制音乐音量。因此,无法通过按下外设按钮并通过蓝牙发送来控制媒体| |系统音量?您可以通过外设事件控制媒体音量。请看下面的代码。感谢您的详细回复!祝你今天愉快:-)谢谢!我将实施并报告结果