首先是系統(tǒng)自己的音量改變UI
然后產品經(jīng)理說了记某,看視頻的時候很不爽司训,我要自己定制這個東西,系統(tǒng)的不去顯示液南。
然后是修改之后的UI
搜了一下需要用到MPVolumeView?
具體做法:
1壳猜、首先監(jiān)聽系統(tǒng)音量按鈕點擊的事件
[[NSNotificationCenterdefaultCenter]addObserver:self selector:@selector(volumeChanged:) name:AVSystemController_SystemVolumeDidChangeNotificationobject:nil];?
這個時候點擊了音量加減按鈕在volumeChanged方法中就可以收到回調
2、監(jiān)聽收到了就該實現(xiàn)產品經(jīng)理的需求了滑凉,把系統(tǒng)自己的音量UI去掉
搜了一下說是MPVolumeView在當前VC的View層中的話就不會顯示统扳,但是實測的話還是會顯示的。
后面找到方法:[[AVAudioSession sharedInstance]setActive:YES error:nil]; 設置為YES 并且MPVolumeView在當前View中就不會顯示系統(tǒng)自己的音量調節(jié)的UI MPVolumeView的實例Viewhidden設為NO alpha不為0 寬高大概要大于1吧 沒有實際測試 基本我自己設置的是CGRectMake(-1000,10,100,100) 只要不在屏幕上顯示就行
3畅姊、- (void)volumeChanged:(NSNotification*)notification
notification的userInfo有兩種 一種是音量的變化 一種是鈴音的變化
/**
改變鈴聲的通知
"AVSystemController_AudioCategoryNotificationParameter" = Ringtone;? ? //鈴聲改變
"AVSystemController_AudioVolumeChangeReasonNotificationParameter" = ExplicitVolumeChange; //改變原因
"AVSystemController_AudioVolumeNotificationParameter" = "0.0625";? //當前值
"AVSystemController_UserVolumeAboveEUVolumeLimitNotificationParameter" = 0;最小值
改變音量的通知
"AVSystemController_AudioCategoryNotificationParameter" = "Audio/Video"; //音量改變
"AVSystemController_AudioVolumeChangeReasonNotificationParameter" = ExplicitVolumeChange; //改變原因
"AVSystemController_AudioVolumeNotificationParameter" = "0.3";? //當前值
"AVSystemController_UserVolumeAboveEUVolumeLimitNotificationParameter" = 0;最小值
*/
@end