2016-07-31 109 views
0

我使用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) 
} 

回答

1

將視圖控制器的滑塊value設置爲AVAudioSession.sharedInstance().outputVolumeinitviewDidLoad。請記住import AVFoundation使用AVAudioSession

或者,您可以編程初始化您的MPVolumeView,而不是將它作爲插座。我相信這是你問題的根源。

+0

感謝您的回答,但這不起作用 – Zl3n

+0

@ Zl3n什麼不行? 'outputVolume'與當前設備的音量不符? – JAL

+0

當我將'mpVolumeSlider?.setValue(0.1,animated:true)'放入函數或init()中時,這並不起任何作用......但是,設備音量保持不變。 – Zl3n