您的位置:首页 > 移动开发

ios监听app音量的变化

2012-08-15 19:42 309 查看
方法1:

在applicationDidFinishLaunching函数里添加

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(volumeChanged:)

name:@"AVSystemController_SystemVolumeDidChangeNotification"

object:nil];

- (void)volumeChanged:(NSNotification *)notification

{

float volume =

[[[notification userInfo]

objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]

floatValue];

DDLogVerbose(@"current volume = %f", volume);

}

弊端:当app进入后天后,依然会监听到volume的变化

2. 对 AudioSession 添加volume变化的 listener, 可以放在startAudioSession函数里

//add a listener for Outputvolume

AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume ,

volumeListenerCallback,

self

);

void volumeListenerCallback (

void *inClientData,

AudioSessionPropertyID inID,

UInt32 inDataSize,

const void *inData

){

const float *volumePointer = inData;

float volume = *volumePointer;

NSLog(@"volumeListenerCallback %f", volume);

}

3. 获取当前的volume

float volume = 0.0;

UInt32 dataSize = sizeof(float);

OSStatus status = AudioSessionGetProperty (kAudioSessionProperty_CurrentHardwareOutputVolume,

&dataSize,

&volume);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: