【问题标题】:get current system volume level on iPhone在 iPhone 上获取当前系统音量
【发布时间】:2009-02-21 07:53:04
【问题描述】:

有什么方法可以让我在 iPhone 上获得当前的系统音量级别?

我在想也许有办法制作MPVolumeView 并从中获得价值。

【问题讨论】:

    标签: iphone audio volume


    【解决方案1】:
    musicPlayer = [[MPMusicPlayerController iPodMusicPlayer];
    
    currentVolume = musicPlayer.volume;
    

    现在从 iOS8.0 开始已弃用,因此请尝试以下操作

    #import <AVFoundation/AVAudioSession.h>
    
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    CGFloat volume = audioSession.outputVolume;
    

    【讨论】:

    • 返回音乐音量,而不是系统音量。
    • iPodMusicPlayervolume 已弃用,有更新的方法吗?
    【解决方案2】:

    Celestial.framework 有一个AVSystemController 类,可让您获取和设置当前音量。不幸的是,这是一个私人课程,因此 Apple 不会在 App Store 提交中接受它

    如果有帮助,你可以滥用一下公众MPVolumeView类:http://www.stormyprods.com/blogger/2008/09/proper-usage-of-mpvolumeview-class.html

    【讨论】:

    • 嗨,rpetrich,是否可以通过 MPVolumeView 更改系统范围的音量...
    • Robin:是的,这是可能的,但如果你这样做了,不要指望你的应用程序会出现在商店中(而且在 Celestial 中有更简单的方法可以轻松访问)
    【解决方案3】:

    斯威夫特 3.0

    ..

    import AVKit
    ..
        // get current level:
        let  audioSession = AVAudioSession.sharedInstance()
        let volume : Float = audioSession.outputVolume
    

    【讨论】:

      【解决方案4】:

      将 MediaPlayer 框架添加到您的项目中

      .h(头文件)

      {
      
        MPMusicPlayerController *musicPlayer; 
      
      }
      

      .m(实现文件)

      - (void)viewDidLoad
      
      {
      
      //get device volume level
      
         musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
      
         float deviceVolumeLevel = musicPlayer.volume;
      
         NSLog(@"Current device volume level : %f",deviceVolumeLevel);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-12-13
        • 2011-06-06
        • 2021-04-10
        • 2011-11-07
        • 1970-01-01
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        • 2019-01-08
        相关资源
        最近更新 更多