ios监听静音键和音量键事件

来源:互联网 发布:手机端网页小游戏源码 编辑:程序博客网 时间:2024/05/07 16:34

判断是否静音:
view plaincopyto clipboardprint?
  1. (BOOL)isMuted  
  2.  
  3.     CFStringRef route;  
  4.     UInt32 routeSize sizeof(CFStringRef);  
  5.   
  6.     OSStatus status AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &routeSize, &route);  
  7.     if (status == kAudioSessionNoError)  
  8.      
  9.         if (route == NULL || !CFStringGetLength(route))  
  10.             return TRUE;  
  11.      
  12.   
  13.     return FALSE;  
  14.  

监听静音键:

view plaincopyto clipboardprint?
  1. (BOOL)addMutedListener  
  2.  
  3.     OSStatus AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange,  
  4.                                                  audioRouteChangeListenerCallback,  
  5.                                                  self);  
  6.     return == kAudioSessionNoError;  
  7.  

回调函数:

view plaincopyto clipboardprint?
  1. void audioRouteChangeListenerCallback (void *inUserData,  
  2.                                        AudioSessionPropertyID inPropertyID,  
  3.                                        UInt32 inPropertyValueSize,  
  4.                                        const void *inPropertyValue  
  5.                                         
  6.  
  7.     if (inPropertyID != kAudioSessionProperty_AudioRouteChange) return 
  8.     BOOL muted [mediaVolume isMuted];  
  9.     // add code here  
  10.  

设置和获取音量:

view plaincopyto clipboardprint?
  1. (float)volume  
  2.  
  3.     return [[MPMusicPlayerController applicationMusicPlayer] volume];  
  4.  
  5.   
  6. (void)setVolume:(float)newVolume  
  7.  
  8.     [[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolume];  
  9.  

监听音量键:

view plaincopyto clipboardprint?
  1. (BOOL)addHardKeyVolumeListener  
  2.  
  3.     OSStatus AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume,  
  4.                                                  audioVolumeChangeListenerCallback,  
  5.                                                  self);  
  6.     return == kAudioSessionNoError;  
  7.  

音量键回调函数:

view plaincopyto clipboardprint?
  1. void audioVolumeChangeListenerCallback (void *inUserData,  
  2.                                         AudioSessionPropertyID inPropertyID,  
  3.                                         UInt32 inPropertyValueSize,  
  4.                                         const void *inPropertyValue)  
  5.  
  6.     if (inPropertyID != kAudioSessionProperty_CurrentHardwareOutputVolume) return 
  7.     Float32 value *(Float32 *)inPropertyValue;  
  8.     MediaVolume *mediaVolume (MediaVolume *)inUserData;  
  9.     // add code here  
  10.  
0 0
原创粉丝点击