如何以编程方式更改 iOS 设备音量?
Posted
技术标签:
【中文标题】如何以编程方式更改 iOS 设备音量?【英文标题】:How to change an iOS device volume programmatically? 【发布时间】:2015-03-14 13:53:07 【问题描述】:有没有办法以编程方式更改设备音量?也许使用音频会话?
【问题讨论】:
【参考方案1】:我很确定无法控制实际的设备音量(因为这也有点突兀) 控制您正在播放的某些媒体是另一回事。但是,您可以查看 MPVolumeView
: https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPVolumeView_Class/index.html 以显示用于设置音量的视图。
这里也讨论过这个问题: How to change device Volume on iOS - not music volume
【讨论】:
对不起,我错过了那个讨论。 看这个:import MediaPlayer let volumeView = MPVolumeView() if let view = volumeView.subviews.first as? UISlider view.value = 0.1 //---0 t0 1.0--- 它对我有用【参考方案2】:看看这个:
import MediaPlayer
let volumeView = MPVolumeView()
if let view = volumeView.subviews.first as? UISlider
view.value = 0.1 //---0 t0 1.0---
它对我有用
【讨论】:
此方法在iOS 11.4不再有效,请参考***.com/a/50740234/2610888【参考方案3】:给你,这对我有用。
#import <MediaPlayer/MediaPlayer.h>
musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
musicPlayer.volume = 1; // max volume
musicPlayer.volume = 0; // min volume (mute)
musicPlayer.volume = 0.0625; // 1 bar on the overlay volume display
【讨论】:
这会改变您正在播放的媒体的相对音量,但我很确定实际音量范围从 0 到用户当前的音量设置。因此,如果用户将音量设置为 1/2,则您的 musicPlayer.volume 设置为 1.0 实际上会给您 1/2 的音量。 从 ios7 被弃用的【参考方案4】:Hacky 但有效(Swift 3):
func setVolumeTo(volume: Float)
(MPVolumeView().subviews.filterNSStringFromClass($0.classForCoder) == "MPVolumeSlider".first as? UISlider)?.setValue(volume, animated: false)
别忘了import MediaPlayer
【讨论】:
这确实有效!只需确保在顶部输入import MediaPlayer
。
我投了反对票,所以我认为它不适用于某些较新的 iOS。如果有人最终对此进行了测试,请在 cmets 中告诉我们您正在运行哪个 iOS。谢谢;)以上是关于如何以编程方式更改 iOS 设备音量?的主要内容,如果未能解决你的问题,请参考以下文章