震动和声音的实现是调用系统AudioServicesPlaySystemSound()函数实现的, 代码如下:
//
// ViewController.m
// 摇一摇
//
// Created by Wangjunling on 16/4/6.
// Copyright © 2016年 Wangjunling. All rights reserved.
//
#import "ViewController.h"
//需要导入AVFoundation
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
/** 摇晃开始 */
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"yaohuang");
//设置震动
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
//设置声音
SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle] pathForResource:@"song"ofType:@"aac"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)([NSURL fileURLWithPath:path]), &soundID);
//播放声音
AudioServicesPlaySystemSound (soundID);
}
/** 摇晃结束 */
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"endshake");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
注意: 更正一下错误, 代码中使用的音效格式为aac, 最近刚发现aac格式的系统并不支持, 系统可以支持的格式一共有三种: caf, aif, wav, 所以码友们, 在练习demo是注意下喽