- (BOOL)isMuted {
CFStringRef state;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
if(CFStringGetLength(state) == 0)
{
//SILENT
return YES;
}
else
{
//NOT SILENT
return NO;
}
}
//监听静音键:
- (BOOL)addMutedListener {
OSStatus s = AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, audioRouteChangeListenerCallback, self);
return s == kAudioSessionNoError;
}
//回调函数:
void audioRouteChangeListenerCallback (void *inUserData,
AudioSessionPropertyID inPropertyID,
UInt32 inPropertyValueSize,
const void *inPropertyValue ) {
if (inPropertyID != kAudioSessionProperty_AudioRouteChange)
return;
BOOL muted = [mediaVolume isMuted];
}
//设置和获取音量:
- (float)volume {
return [[MPMusicPlayerController applicationMusicPlayer] volume];
}
- (void)setVolume:(float)newVolume {
[[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolume];
}
//监听音量键:
- (BOOL)addHardKeyVolumeListener {
OSStatus s = AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume, audioVolumeChangeListenerCallback, self);
return s == kAudioSessionNoError;
}
//音量键回调函数:
void audioVolumeChangeListenerCallback (
void *inUserData,
AudioSessionPropertyID inPropertyID,
UInt32 inPropertyValueSize,
const void *inPropertyValue){
if (inPropertyID != kAudioSessionProperty_CurrentHardwareOutputVolume)
return;
Float32 value = *(Float32 *)inPropertyValue;
MediaVolume *mediaVolume = (MediaVolume *)inUserData;
}
监听是否静音及音量
最新推荐文章于 2021-05-30 23:05:00 发布