zoukankan      html  css  js  c++  java
  • iOS 隐藏系统音量提示框

        一:

    #import <MediaPlayer/MediaPlayer.h>

    #import <AVFoundation/AVFAudio.h>

    @property(nonatomic,strong)UISlider *sliderView;

    @property(nonatomic,assign)NSIntegercurrentTime;



    二.

    隐藏系统音量提示框

    - (void)viewDidLoad {

        [superviewDidLoad];

        self.view.backgroundColor = [UIColorredColor];

        

        MPVolumeView *volumeView = [[MPVolumeViewalloc] initWithFrame: CGRectZero];

        volumeView.clipsToBounds = YES;

        [self.viewaddSubview: volumeView];

            

        self.sliderView = [[UISlideralloc]init];

        self.sliderView.frame = CGRectMake(100, 100, 200, 10);

        self.sliderView.maximumValue = 1;

        self.sliderView.minimumValue = 0;

    //    self.sliderView.backgroundColor = [UIColor blueColor];

        self.sliderView.tintColor = [UIColoryellowColor];

        self.sliderView.thumbTintColor = [UIColorclearColor];//隐藏滑块

        [self.viewaddSubview:self.sliderView];

        [selfsettingVolume];

    }




    三.
    // 设置音量相关

    - (void)settingVolume {

        //监听系统音量变化

        AVAudioSession *session = [AVAudioSessionsharedInstance];

        [session setCategory:AVAudioSessionCategoryAmbienterror:nil];

        [session setActive:YESerror:nil];

        NSError *error;

        [[AVAudioSessionsharedInstance] setActive:YESerror:&error];

        [[UIApplicationsharedApplication] beginReceivingRemoteControlEvents];

        [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(volumeChangeNotification:)name:@"AVSystemController_SystemVolumeDidChangeNotification"object:nil];

    }


    // 音量改变

    - (void)volumeChangeNotification:(NSNotification *)noti {

        if (self.sliderView.alpha == 0.0) {

            [UIViewanimateWithDuration:0.25animations:^{

                self.sliderView.alpha = 1.0;

            }];

        }

        float volume = [[[noti userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];

        self.sliderView.value = volume;

        self.currentTime = [NSDatedate].timeIntervalSince1970;

        // 两秒后消失

        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

            NSTimeInterval nowTime = [NSDatedate].timeIntervalSince1970;

            // 容错处理,处理用户连续按音量加减时的情况

            if ((nowTime - self.currentTime) >= 2.0) {

                [UIViewanimateWithDuration:0.25animations:^{

                    self.sliderView.alpha = 0.0;

                } ];

            }

        });

    }

     

     
  • 相关阅读:
    app专项测试之稳定性测试-monkey测试
    Mac下Fiddler的安装启动。
    测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)
    mysql如何用sql语句修改表字段?
    VMware虚拟机出现“正在使用中”如何解决?
    Opencv2.1+vs2008生成不依赖编译环境的exe文件
    VS2008在win7下不时出现Microsoft Incremental Linker已停止工作
    没有找到opencv_core231d.dll运行结果不能显示
    Mat类型与IplImage类型之间相互转换
    获取当前可执行文件的路径(绝对路径)
  • 原文地址:https://www.cnblogs.com/-ios/p/14330244.html
Copyright © 2011-2022 走看看