我有AVPlayer
和AVPLayerLayer
,除此之外,我还有UIView可以隐藏和显示UITapGestureRecognizer
上的按钮和滑块。我已通过计算屏幕尺寸检测到了屏幕的左右边缘,右侧需要控制亮度,左侧需要控制音量。我在这里和其他网站上搜索了如何使用MPVolumeView
访问系统音量,然后将其实现到我的应用程序,一切正常,除了不能将转换值y用作MPVolumeSlider
的音量值。有什么方法可以用于此目的。]
我试图循环输入UIPanGestureRecognizer
的每个翻译值y,但仍然无济于事。
@objc func handleTransparentPan(gesture: UIPanGestureRecognizer) {
let viewWidth = transparentView.frame.width / 2
let translation = gesture.translation(in: transparentView)
// let x = translation.x
let y = translation.y
if gesture.location(in: transparentView).x > viewWidth {
if y < 0 {
print("volume up")
print(y)
if player.volume < maxVolume {
player.volume = player.volume + 5
changeSpeakerSliderPanelControls(volume: player.volume)
}
}
else {
print("volume down")
if player.volume > 0 {
player.volume = player.volume - 5
changeSpeakerSliderPanelControls(volume: player.volume)
}
}
}
else {
if y < 0 {
print("Brightness up")
}
else {
print("Brightenss down")
}
}
}
这是我的手柄平移方法。而changeSpeakerSliderPanelControls是一种循环遍历MPVolumeView子视图的方法,一旦命中MPVolumeSlider并创建UISlider的实例并为其分配即将到来的音量值。