我想调用一个函数,如果在同一秒内按下音量减小按钮两次,这可能还是不可能?!
Willeke 的链接至少为您提供了一个良好的起点。
如果您的设备是带OC的iPhone,使用AVFoundation和MediaPlayer可以监控音量变化。
1、
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>
2、
@property (nonatomic, strong) MPVolumeView* volumeView;
@property (nonatomic, strong) UISlider* volumeSlider;
3、
NSError* error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
if (error) {
NSLog(@"error setting category:%@", error.localizedDescription);
}
_volumeView = [[MPVolumeView alloc] initWithFrame:CGRectZero];
[self.view addSubview:self.volumeView];
// 找到MPVolumeView上的UISlider
for (UIView *view in [self.volumeView subviews]){
if ([view isKindOfClass:[UISlider class]]) {
self.volumeSlider = (UISlider *)view;
break;
}
}
[self.volumeSlider addTarget:self action:@selector(volumeChanged:) forControlEvents:UIControlEventValueChanged];
4、
- (void)dealloc {
[self.volumeSlider removeTarget:self action:@selector(volumeChanged:) forControlEvents:UIControlEventValueChanged];
}
- (void)volumeChanged:(UISlider *)sender {
NSLog(@"%.2f", sender.value);
}
方法中可以监听音量变化,如果想要连续点击1秒,需要设置一个时间戳作为锚点。 但这种方法有一些问题: