#import <AVFoundation/AVFoundation.h>
利用此框架中的
AVAudioRecorder和AVAudioPlayer來錄音和播放以下是AVAudioRecorder錄音的使用方法:
- (IBAction)downAction:(id)sender {
按下錄音
if ([self canRecord]) {
NSError *error = nil;
必須真機上測試,模擬器上可能會崩潰
recorder = [[AVAudioRecorder alloc] initWithURL:[NSURL URLWithString:playName] settings:recorderSettingsDict error:&error];
if (recorder) {
是否允許刷新電平表,默認是off
recorder.meteringEnabled = YES;
創建文件,並准備錄音
[recorder prepareToRecord];
開始錄音
[recorder record];
啟動定時器,為了更新電平
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(levelTimer:) userInfo:nil repeats:YES];
} else
{
int errorCode = CFSwapInt32HostToBig ([error code]);
NSLog(@"Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);
}
}
}
- (IBAction)upAction:(id)sender {
松開 結束錄音
錄音停止
[recorder stop];
recorder = nil;
結束定時器
[timer invalidate];
timer = nil;
圖片重置
soundLodingImageView.image = [UIImage imageNamed:[volumImages objectAtIndex:0]];
}
[cpp] view plain copy
- (IBAction)downAction:(id)sender {
按下錄音
if ([self canRecord]) {
NSError *error = nil;
必須真機上測試,模擬器上可能會崩潰
recorder = [[AVAudioRecorder alloc] initWithURL:[NSURL URLWithString:playName] settings:recorderSettingsDict error:&error];
if (recorder) {
是否允許刷新電平表,默認是off
recorder.meteringEnabled = YES;
創建文件,並准備錄音
[recorder prepareToRecord];
開始錄音
[recorder record];
啟動定時器,為了更新電平
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(levelTimer:) userInfo:nil repeats:YES];
} else
{
int errorCode = CFSwapInt32HostToBig ([error code]);
NSLog(@"Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);
}
}
}
- (IBAction)upAction:(id)sender {
松開 結束錄音
錄音停止
[recorder stop];
recorder = nil;
結束定時器
[timer invalidate];
timer = nil;
圖片重置
soundLodingImageView.image = [UIImage imageNamed:[volumImages objectAtIndex:0]];
}
以下是AVAudioPlayer播放器的使用方法:
- (IBAction)playAction:(id)sender {
NSError *playerError;
播放
player = nil;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:playName] error:&playerError];
if (player == nil)
{
NSLog(@"ERror creating player: %@", [playerError description]);
}else{
[player play];
}
}
- (IBAction)playAction:(id)sender {
NSError *playerError;
播放
player = nil;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:playName] error:&playerError];
if (player == nil)
{
NSLog(@"ERror creating player: %@", [playerError description]);
}else{
[player play];
}
}
提示:如果是7.0,第一次運行會提示,是否允許使用麥克風
if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending)
{
7.0第一次運行會提示,是否允許使用麥克風
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *sessionError;
AVAudioSessionCategoryPlayAndRecord用於錄音和播放
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
if(session == nil)
NSLog(@"Error creating session: %@", [sessionError description]);
else
[session setActive:YES error:nil];
}
if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending)
{
7.0第一次運行會提示,是否允許使用麥克風
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *sessionError;
AVAudioSessionCategoryPlayAndRecord用於錄音和播放
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
if(session == nil)
NSLog(@"Error creating session: %@", [sessionError description]);
else
[session setActive:YES error:nil];
}