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);
在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);
相关文章推荐
- iOS 监听App音量的变化(转)
- iOS 监听App音量的变化2(转)
- iOS 监听App音量的变化
- iOS 使用AFNetWorking监听APP网络状态变化(可用于更改缓存策略、提示网络等)
- iOS 监听App音量的变更
- iOS开发之音乐播放----监听系统音量变化
- iOS 使用AFNetWorking监听APP网络状态变化(可用于更改缓存策略、提示网络等)
- IOS ANDROID WINDOWS PHONE国内格局的悄然变化-应用电台www.apphub.fm
- iOS监听音量调节事件
- iOS开发之监听键盘高度的变化 分类: ios技术 2015-04-21 12:04 233人阅读 评论(0) 收藏
- ios 监听文本框文字的变化
- ios 文本框变化 监听的3种方式
- iOS 监听wifi状态的变化
- iOS开发之监听键盘高度的变化
- iOS开发之监听键盘高度的变化
- iOS 监听音量调节事件
- iOS监控/监测/监听文件/文件夹的变化 检测文件变化
- 获取系统当前音量 和 监听系统音量 ios
- iOS 实时监听app的网络连接状态
- ios 监听app从后台恢复到前台