将MPVolumeView滑块的拇指位置设置为设备音量

问题描述:

我使用MPVolumeView来生成水平滑块,该水平滑块允许我管理正在播放的音频的音量。它效果很好。然而,在初始化时,我想发生在对应于设备的体积,而不是0.5,默认位置滑块:将MPVolumeView滑块的拇指位置设置为设备音量

enter image description here enter image description here

这是我做的代码:

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设置为AVAudioSession.sharedInstance().outputVolumeinitviewDidLoad。请记住import AVFoundation使用AVAudioSession

或者,您可以编程初始化您的MPVolumeView,而不是将它作为插座。我相信这是你问题的根源。

+0

感谢您的回答,但这不起作用 – Zl3n

+0

@ Zl3n什么不行? 'outputVolume'与当前设备的音量不符? – JAL

+0

当我将'mpVolumeSlider?.setValue(0.1,animated:true)'放入函数或init()中时,这并不起任何作用......但是,设备音量保持不变。 – Zl3n