监听是否静音及音量

- (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; 
    
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值