ios 获取是否静音模式_iOS 判断设备是否静音

本文介绍了在 iOS 中如何判断设备是否开启静音模式,包括两种类型的声音:铃声和提醒以及媒体声音。在 iOS 5 之前,可以通过 AudioSessionGetProperty 判断,但之后苹果禁止了这种方式。为了解决问题,文章提供了一种曲线救国的方法,通过播放极短的空白音频并监听播放完成事件来判断设备静音状态。
摘要由CSDN通过智能技术生成

在 iOS 设备中,主要有以下两种类型的声音:

铃声和提醒:包括电话、短信、通知等系统类的声音(也包括按键音、锁定声,这两者可在设置中设置是否开启),它们受物理静音开关键的控制,也就是说,当设备开启静音时,这些声音是不会播放的。

媒体声音:一般为 App 播放音视频时的声音,音量大小可通过物理音量 + - 键来控制,但它不受设备静音开关键的控制,即当静音键开启时,我们仍然可以通过相关 API 正常播放声音。

因此,这里说的静音分为两种情况,“通过物理静音键开启静音” 和 “将媒体音量调小至 0”。对于后者比较简单,我们可以通过 [AVAudioSession sharedInstance].outputVolume 获取当前音量大小是否为 0 来判断。

下面我们介绍一下如何检测设备静音开关键的状态。

在 iOS 5 之前,我们可以使用以下方式判断静音键的开关:

- (BOOL)isMuted {

CFStringRef route;

UInt32 routeSize = sizeof(CFStringRef);

OSStatus status = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &routeSize, &route);

if (status == kAudioSessionNoError) {

if (route == NULL || !CFStringGetLength(route))

return YES;

}

r

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值