【问题标题】:Swift: Setting AVAudioSession Output VolumeSwift:设置 AVAudioSession 输出音量
【发布时间】: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,但我很难找到设置它的方法。

谢谢!

【问题讨论】:

    标签: ios swift


    【解决方案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 插件调用的。这会影响主音量(调用代码时设备音量弹出窗口会显示新音量)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-01
        • 1970-01-01
        相关资源
        最近更新 更多