检查系统音量是不是静音
Posted
技术标签:
【中文标题】检查系统音量是不是静音【英文标题】:Check if system volume is muted检查系统音量是否静音 【发布时间】:2015-03-15 15:45:52 【问题描述】:我目前正在做一个小项目,我需要检查系统音量是否从 App Delegate 静音。
就像用户mute's/unmute's
需要调用函数的音量一样。
我发现了一些关于 AudioToolbox 的东西,但我似乎找不到任何有用的东西。
【问题讨论】:
【参考方案1】:我知道要查找默认设备是否已静音。首先,您需要查找“默认”音频设备硬件 ID。这可以完成一次并存储在您的程序中。
var propAddr = AudioObjectPropertyAddress(
mSelector: AudioObjectPropertySelector(kAudioHardwarePropertyDefaultOutputDevice),
mScope: AudioObjectPropertyScope(kAudioObjectPropertyScopeGlobal),
mElement: AudioObjectPropertyElement(kAudioObjectPropertyElementMaster))
var defaultAudioHardwareID : AudioDeviceID = 0
var propSize = UInt32(sizeof(uint32))
let status = AudioHardwareServiceGetPropertyData(AudioObjectID(kAudioObjectSystemObject), &propAddr, 0 , nil, &propSize, &defaultAudioHardwareID)
之后,您可以查看设备是否静音。
var propAddr = AudioObjectPropertyAddress(
mSelector: AudioObjectPropertySelector(kAudioDevicePropertyMute),
mScope: AudioObjectPropertyScope(kAudioObjectPropertyScopeOutput),
mElement: AudioObjectPropertyElement(kAudioObjectPropertyElementMaster))
var isMuted: uint32 = 0
var propSize = UInt32(sizeof(uint32))
let status = AudioHardwareServiceGetPropertyData(defaultAudioHardwareID, &propAddr, 0, nil, &propSize, &isMuted)
if isMuted != 0
// Do stuff here
return;
不知道有没有办法在静音状态改变时得到通知。
【讨论】:
超级,这正是我所需要的。只需要找到静音状态变化的事件监听器... 我收到此错误:Use of unresolved identifier 'sizeof'
@Egghead 你有想过这个吗?以上是关于检查系统音量是不是静音的主要内容,如果未能解决你的问题,请参考以下文章