Swift:设置 AVAudioSession 输出音量
Posted
技术标签:
【中文标题】Swift:设置 AVAudioSession 输出音量【英文标题】:Swift: Setting AVAudioSession Output Volume 【发布时间】:2015-02-19 21:50:55 【问题描述】:有没有办法设置 AVAudiosession outputVolume?
self.audioSession = AVAudioSession.sharedInstance()
self.audioSession.setActive(true, error: nil)
self.audioSession.addObserver(self, forKeyPath: "outputVolume", options: NSKeyValueObservingOptions.New, context: nil)
self.audioSession.outputVolume
目前我可以访问 outputVolume,但我很难找到设置它的方法。
谢谢!
【问题讨论】:
【参考方案1】:outputVolume
属性是只读的。这是因为 Apple 坚信,如果应用程序意外修改音量超出用户控制范围,那么良好的用户体验将会被破坏。
来自 AVAudioSession 文档:
系统范围的输出音量只能由用户直接设置;要在您的应用中提供音量控制,请使用 MPVolumeView 类
所以这是您唯一(简单)的选择...
MPVolumeView *myVolumeView =
[[MPVolumeView alloc] initWithFrame:frame];
[self.view addSubview: myVolumeView];
【讨论】:
【参考方案2】:我能够在 iOS 8 上使用以下内容更改主音量
#import <MediaPlayer/MediaPlayer.h>
[[MPMusicPlayerController applicationMusicPlayer] setVolume:0.0];
[[MPMusicPlayerController iPodMusicPlayer] setVolume:0.0];
关于信息,代码是通过 Cordova 插件调用的。这会影响主音量(调用代码时设备音量弹出窗口会显示新音量)
【讨论】:
以上是关于Swift:设置 AVAudioSession 输出音量的主要内容,如果未能解决你的问题,请参考以下文章
Swift:如何设置与其他人优雅混合的音频会话(又名 Pod)
Swift 中的 session.setPreferredInput?
设置 AVAudioSession 类别对来自 WKWebView 的声音没有影响
将关于录制麦克风信号的旧 swift 代码行翻译为 swift 4.2
将 AVAudioSession 模式设置为 AVAudioSessionModeVideoChat 时出现麦克风低语音录制问题