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;

                } ];

            }

        });

    }

     

     
  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/-ios/p/14330244.html
Copyright © 2011-2022 走看看