Swift:设置AVAudioSession输出音量

时间:2015-02-19 21:50:55

标签: ios swift

有没有办法设置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,但我遇到了设置它的方法的麻烦。

谢谢!

2 个答案:

答案 0 :(得分:3)

outputVolume属性是只读的。这是因为Apple坚信,如果应用程序意外修改音量超出用户控制范围,将会破坏良好的用户体验。

来自AVAudioSession docs:

  

系统范围的输出量只能由用户直接设置;要在您的应用中提供音量控制,请使用MPVolumeView类

所以这是你唯一的(简单)选择...

  MPVolumeView *myVolumeView =
    [[MPVolumeView alloc] initWithFrame:frame];
    [self.view addSubview: myVolumeView];

答案 1 :(得分:0)

我可以在iOS 8上使用以下内容更改主音量

#import <MediaPlayer/MediaPlayer.h>

[[MPMusicPlayerController applicationMusicPlayer] setVolume:0.0];
[[MPMusicPlayerController iPodMusicPlayer] setVolume:0.0];

获取信息,代码通过Cordova插件调用。这会影响主卷(设备卷弹出窗口在调用代码时显示新卷)