美文网首页
iOS 系统媒体音量

iOS 系统媒体音量

作者: 沸青 | 来源:发表于2017-06-03 13:12 被阅读830次

iOS 媒体音量获取以及控制

获取系统音量
// 需要引入<AVFoundation/AVFoundation.h>
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
CGFloat systemVolume = audioSession.outputVolume;

调整系统音量

iOS7 之后,可以使用系统提供的MPVolumeView(需要引入<MediaPlayer/MediaPlayer.h>)来控制系统媒体音量。这个控件创建以后,放到视图的可视区域之外,然后通过遍历获取到私有属性MPVolumeSlider,然后通过自己创建的UISlider来对应改变MPVolumeSlider的 Value,这样就能达到控制系统媒体音量的目的。

/// 系统提供的获取音量的控件
@property (nonatomic, strong) MPVolumeView *volumeView;
/// 从上一个控件遍历得到的 Slider
@property (nonatomic, weak) UISlider *mpVolumeSlider;
/// 自己的 Slider
@property (nonatomic, strong) UISlider *volumeSlider;
_volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(-1000, -100, 100, 100)];
[_volumeView setShowsVolumeSlider:YES];
_volumeView.showsRouteButton = NO;
[_volumeView sizeToFit];
[self addSubview:_volumeView];
[_volumeView userActivity];
for (UIView *subView in [_volumeView subviews]) {
   if ([subView.class.description isEqualToString:@"MPVolumeSlider"]){
      _mpVolumeSlider = (UISlider*)subView;
      break;
   }
}

监听系统媒体音量变化

通过注册通知AVSystemController_SystemVolumeDidChangeNotification来监听系统音量的改变,来对应自定义 UI 的改变。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(systemVolumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];
- (void)systemVolumeChanged:(NSNotification *)notification {
    if([[notification.userInfo objectForKey:@"AVSystemController_AudioVolumeChangeReasonNotificationParameter"] isEqualToString:@"ExplicitVolumeChange"]) {
        float volume = [[[notification userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];

        [self.volumeSlider setValue:volume animated:YES];
    }
}

相关文章

  • iOS 系统媒体音量

    iOS 媒体音量获取以及控制 获取系统音量 调整系统音量 iOS7 之后,可以使用系统提供的MPVolumeVie...

  • iOS修改系统音量(MPVolumeView)

    iOS的AVFoundation调节音量大小时不会影响系统音量。但有时候我们可能希望修改系统音量,以免在调节声音的...

  • iOS 调整系统屏幕亮度、媒体音量

    //联系人:石虎QQ:1224614774昵称:嗡嘛呢叭咪哄 一 、iOS调整系统屏幕亮度 0.背景 以前,无...

  • iOS 调节系统音量

    控制系统音量总得来说有如下两种方法 第一种方法是苹果在7.0以后建议用的,不过通过第一种方法,调节系统音量会弹出系...

  • 传送门

    iOS音频篇:AVPlayer的缓存实现 iOS流媒体开发之二:滑动手势控制音量、亮度和进度 UI调试神器 for...

  • iOS系统音量&屏幕亮度调节

    一,系统音量获取 系统框架 获取系统音量slider 监听系统物理按键调节音量 获取系统当前音量 二,屏幕亮度 很...

  • iOS音量调节那些事

    因为项目需求需要通过调节手机音量键调节远程硬件设备音量,所以对iOS系统音量事件做了一些研究,也尝试了网上的一些方...

  • iOS开发 修改系统音量

    实现需求:打开APP后,自动将音量调节到某个值 向工程添加frameworks : #import

  • iOS系统音量键设置

    期望效果,系统音量键的关闭不影响视频播放音量控制。

  • 修改iOS系统的音量

    请注意: 修改系统音量无法在模拟器上看到效果,必须使用真机调试才能看到效果! 使用前请导入库 #import

网友评论

      本文标题:iOS 系统媒体音量

      本文链接:https://www.haomeiwen.com/subject/gqapfxtx.html