【问题标题】:Setting the system volume in Swift under IOSIOS下Swift中设置系统音量
【发布时间】:2016-06-17 05:44:07
【问题描述】:

好的,

这获取系统音量,效果很好。

var volume = AVAudioSession.sharedInstance().outputVolume
print("output volume: \(volume)")

但是请[在 Swift 中] 如何设置系统音量

【问题讨论】:

标签: ios swift audio


【解决方案1】:

首先你需要导入媒体播放器,

import MediaPlayer

然后就可以设置系统音量了,

let volumeView = MPVolumeView()
if let view = volumeView.subviews.first as? UISlider
{
     view.value = 0.1   // set b/w 0 t0 1.0       
}

希望这会对你有所帮助。

【讨论】:

  • 它似乎工作,但 AVAudioSession.sharedInstance().outputVolume 仍然报告具有相同值的音量,所以也许这不是我正在寻找的答案?
  • 如何隐藏音量hud?我试过 view.isHidden = false 和 volumeView.isHidden,但没有运气......
  • 这很好用。有人知道 Apple 对 wrt App Review 的看法吗?
  • 我见过很多这样做的应用程序,他们通过应用程序审查做到了。也就是说,我确定 Apple 不喜欢它,否则他们会给我们一个真正的 API。至于隐藏它,我知道过去,您可以通过将不透明度或 alpha 设置为 0.01 或类似的值来隐藏它。最近没试过。
【解决方案2】:

这是您在使用最新的 iOS 10.2

时需要做的事情

第 1 步。 导入 MediaPlayer

import MediaPlayer

第 2 步。 添加扩展程序

//Update system volume
extension MPVolumeView {
    static func setVolume(_ volume: Float) {
        let volumeView = MPVolumeView()
        let slider = volumeView.subviews.first(where: { $0 is UISlider }) as? UISlider

        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.01) {
            slider?.value = volume
        }
    }
}

第 3 步。以这种方式改变音量

 //Update system volume
 MPVolumeView.setVolume(0.2)

感谢trungduc

【讨论】:

  • 这里为什么需要调度时间?你能告诉我吗?谢谢!工作正常!
猜你喜欢
  • 1970-01-01
  • 2011-11-07
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 2019-01-08
  • 2018-11-16
  • 1970-01-01
相关资源
最近更新 更多