iOS 声音按键监听和实现

首先包含这两个头文件以及加入对应的框架

#import <MediaPlayer/MediaPlayer.h>

#import <AudioToolbox/AudioToolbox.h>

添加声音通知的监听

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];

// 获取当前系统音量

self.volume = [[MPMusicPlayerController applicationMusicPlayer] volume];

// 判断是否静音

- (BOOL) isMuted

{

CFStringRef route;

UInt32 routeSize = sizeof(CFStringRef);

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

if (status == kAudioSessionNoError)

{

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

return TRUE;

}

return FALSE;

}

// 声音通知监听的实现

- (void) volumeChanged:(NSNotification *) notification

{

// 获取当前声音的值

float volume =

[[[notification userInfo]

objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]

floatValue];

//    NSLog(@"现在音量:%f",volume);

if (!self.isMuted && volume < self.volume && self.acceptBtn.hidden == NO) {

// 设置音量为静音

[[MPMusicPlayerController applicationMusicPlayer] setVolume:0.0];

// 添加系统震动

AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);

NSLog(@"----isMuted音量:%f-------",volume);

} else if (volume > self.volume && self.acceptBtn.hidden == NO){

[[MPMusicPlayerController applicationMusicPlayer] setVolume:volume];

NSLog(@"----!isMuted音量:%f-------",volume);

}

// 更新记录音量值的变量

self.volume = volume;

}

时间: 2024-12-07 03:39:57

iOS 声音按键监听和实现的相关文章

ios ---键盘的监听事件

//在view将要出现的时候重载viewWillAppear方法添加通知 监听事件 keyboardWillShow:  keyboardWillHide: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:

implements KeyListener了按键监听却监听不到

今天写游戏,按键监听却是总也添加不上去苦思冥想, 我实现了接口但是监听不到 后来才发现我只是实现了结口却没调用它仔细想来就在控件panel上面添加了一个addKeyListener(this); 写监听一定要记得让控件去触发总之来说还是基础不牢固,马虎 其次我有在其他的程序里测试发现方法都写了也不行:后来比较了一下少了个 this.setFocusable(true); 网上一查才知道还需要获取焦点,伙伴们你们知道了么? 将控件设置成可获取焦点状态,默认是无法获取焦点的,只有设置成true,才能

iOS 声音按键的监听

一. 添加两个框架 :MediaPlayer.framework和AudioToolbox.framework 添加两个头文件 #import <MediaPlayer/MediaPlayer.h> #import <AudioToolbox/AudioToolbox.h> 添加通知 一般在程序刚刚启动的时候添加:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDic

iOS开发之监听网络连接,改变,断开

做iOS开发时,我们需要监控/监听网络状况,苹果提供了Reachability.h, Reachability.m. 导入Reachability.h 我们可以在 MainViewController的viewDidLoad方法内部写上: [self checkReachability]; 之后,具体方法如下 #pragma mark #pragma mark Reachability Methods #pragma mark - (void)checkReachability { [[NSNo

iOS 键盘的监听 调整view的位置

iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications - (void)viewDidLoad { [super viewDidLoad]; //添加监听 键盘消失 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDown) name:UIKeyboardDid

按键监听及重写

一.PreviewKeyDown.KeyDown.KeyPress.KeyUp相关:http://blog.csdn.net/jiankunking/article/details/20611383 需要焦点在控件上才能监听按键. 二.以下代码是重写事件来监听左右键,取消点击回车在datagridview中选中下一行. protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Key

按键监听类KeyListener及适配器改良方案

导包导的恶心,真是马上要对notepad累觉不爱了,好在顺利导完.. 监听按键信息 //source code import java.awt.Color ; import java.awt.Font ; import java.awt.GridLayout ; import java.awt.event.ActionEvent ; import java.awt.event.ActionListener ; import java.awt.event.WindowListener ; impo

IOS开发—网络监听

网络监听用到的类为Reachability.h,这个Xcode项目里面是不自带的,需要从github上面下载,在使用的时候记着导入SystemConfiguration.framework. 首先是在AppDelegate.m中设置网络监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotifica

【iOS】通知监听

下例为:监听文本框  accountField  内容的改变, 当发生改变时, 调用textChange方法(多次).监听结束需要移除通知. - (void)viewDidLoad { [super viewDidLoad]; // 1.监听通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotificatio