将 MPVolumeView 滑块拇指位置设置为设备音量
Posted
技术标签:
【中文标题】将 MPVolumeView 滑块拇指位置设置为设备音量【英文标题】:Set MPVolumeView slider thumb position as device volume 【发布时间】:2016-07-31 09:36:58 【问题描述】:我使用MPVolumeView 生成一个水平滑块,它允许我管理正在播放的音频的音量。它工作得很好。但是,在初始化时,我希望滑块占据与设备音量相对应的位置,而不是 0.5,默认值:
这是我做的代码:
func volumeSlider()
let parentVolumeView = MPVolumeView(frame: volumeParentView.bounds)
for view in parentVolumeView.subviews
if (view as UIView).description.rangeOfString("MPVolumeSlider") != nil
mpVolumeSlider = view as! UISlider
print("mpVolumeSlider.value : ", mpVolumeSlider.value)
// Tried to set mpVolumeSlider.value to volume device, but didn't work, show : 0.0
// mpVolumeSlider.value = AVAudiosession.sharedInstance().outputVolume
// Remove device volume indicator
self.view!.addSubview(parentVolumeView)
let thumbImage = UIImage(named: "slider-image")
slider?.setThumbImage(thumbImage, forState: .Normal)
【问题讨论】:
【参考方案1】:将滑块的 value
分配给视图控制器的 init
或 viewDidLoad
上的 AVAudioSession.sharedInstance().outputVolume
。记得import AVFoundation
使用AVAudioSession
。
或者,您可以以编程方式初始化您的MPVolumeView
,而不是将其作为插座。我相信这是您问题的根源。
【讨论】:
@Zl3n 什么不起作用?outputVolume
是否与当前设备的音量不匹配?
当我做mpVolumeSlider ?.setValue(0.1, animated: true)
,进入函数或进入init()
,这没有任何作用......但是设备音量不断修改。
你没有使用outputVolume
。你在viewDidLoad
上尝试过mpVolumeSlider?.setValue(AVAudioSession.sharedInstance().outputVolume, animated: true)
吗?
@Zl3n 是否需要使用 Interface Builder? MPVolumeView
应该会自动调整到系统音量。如果您以编程方式初始化 MPVolumeView
而不是将其作为插座会发生什么?以上是关于将 MPVolumeView 滑块拇指位置设置为设备音量的主要内容,如果未能解决你的问题,请参考以下文章