iOS 監聽和設置系統音量


一:監聽系統音量

1:添加 #import <AVFoundation/AVFoundation.h>

 

2:在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 添加

 //監聽系統聲音

    AVAudioSession *session = [AVAudioSession sharedInstance];

    [session setCategory:AVAudioSessionCategoryAmbient error:nil];//重點方法

    [session setActive:YES error:nil];

    NSError *error;

    [[AVAudioSession sharedInstance] setActive:YES error:&error];

    //注,ios9上不加這一句會無效

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

 

3:在需要添加監聽的地方監聽音量

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];

 

//系統聲音改變

-(void)volumeChanged:(NSNotification *)notification

{

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

    NSLog(@"FlyElephant-系統音量:%f", volume);

}

 二:設置系統音量

 

#import <MediaPlayer/MediaPlayer.h>

 

 //初步同步系統的音量跟耳機初步音量達成一致

        MPVolumeView *volumeView = [MPVolumeView new];

        volumeView.showsRouteButton = NO;

        volumeView.showsVolumeSlider = NO;

        [self.view addSubview:volumeView];

 

       // __weak __typeof(self)weakSelf = self;

        [[volumeView subviews] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

            if ([obj isKindOfClass:[UISlider class]]) {

                //__strong __typeof(weakSelf)strongSelf = weakSelf;

                volumeViewSlider = obj;//UISlider* volumeViewSlider;

                *stop = YES;

            }

        }];

        [volumeViewSlider setValue:volumeF animated:YES];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM