将 MPVolumeView 滑块拇指位置设置为设备音量
Set MPVolumeView slider thumb position as device volume
我使用 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)
}
将滑块的 value
分配给视图控制器的 init
或 viewDidLoad
中的 AVAudioSession.sharedInstance().outputVolume
。记得import AVFoundation
使用AVAudioSession
.
或者,您可以通过编程方式初始化您的 MPVolumeView
而不是将其作为插座。我相信这是您问题的根源。
我使用 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)
}
将滑块的 value
分配给视图控制器的 init
或 viewDidLoad
中的 AVAudioSession.sharedInstance().outputVolume
。记得import AVFoundation
使用AVAudioSession
.
或者,您可以通过编程方式初始化您的 MPVolumeView
而不是将其作为插座。我相信这是您问题的根源。