关于iOS 录音功能

作者: Wo的小名叫单纯 | 来源:发表于2016-06-07 10:46 被阅读761次

啥也不说,直接上代码,复制即可

首先要引进系统包​CoreGraphics.framework    Foundation.framework    UIKit.framework    AVFoundation.framework(必须要引入)

h文件引入头文件#import ​

#import

#import

@interface ViewController : UIViewController//此处设置代理

@property(nonatomic,strong)UIButton *recoron;//录音button

@property(nonatomic,strong)UIButton *playButton;//播放button

//录音存储路径

@property(nonatomic,strong)NSURL *tmpFile;

//录音

@property(nonatomic,strong)AVAudioRecorder *recorder;

//播放

@property(nonatomic,strong)AVAudioPlayer *player;

//录音状态

@property(nonatomic,assign)BOOL isRecoding;

@end

m文件

写出两个button

self.playButton = [[UIButtonalloc] initWithFrame:CGRectMake(10, 50, 100, 30)];

self.playButton.backgroundColor = [UIColororangeColor];

[self.playButtonsetTitle:@"play"forState:(UIControlStateNormal)];

[self.playButtonsetTitleColor:[UIColorwhiteColor] forState:(UIControlStateNormal)];

[self.playButtonaddTarget:selfaction:@selector(playButtonAction:) forControlEvents:(UIControlEventTouchUpInside)];

[self.viewaddSubview:_playButton];

self.recoron = [[UIButtonalloc] initWithFrame:CGRectMake(130, 50, 100, 30)];

self.recoron.backgroundColor = [UIColorgrayColor];

[self.recoronsetTitle:@"start"forState:(UIControlStateNormal)];

[self.recoronsetTitleColor:[UIColorwhiteColor] forState:(UIControlStateNormal)];

[self.recoronaddTarget:selfaction:@selector(startButtonAction:) forControlEvents:(UIControlEventTouchUpInside)];

[self.viewaddSubview:_recoron];

​下面方法写在viewDidLoad中

//刚打开的时候录音状态未不录音;

self.isRecoding = NO;

//播放按钮不能被点击

[self.playButton setEnabled:NO];

//播放按钮设置为半透明

self.playButton.titleLabel.alpha = 0.5;

//创建临时文件夹来存放录音文件

self.tmpFile = [NSURLfileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:@"TmpFile"]];

//设置后台播放

AVAudioSession *session = [AVAudioSessionsharedInstance];

NSError *sessionError;

[session setCategory:AVAudioSessionCategoryPlayAndRecorderror:&sessionError];

//判断后台有没有播放

if(session == nil){

NSLog(@"Error creating sessing:%@", [sessionError description]);

}else{

[session setActive:YES error:nil];

}

​两个button点击事件里面

播放button

-(void)playButtonAction:(UIButton *)sender

{

NSLog(@"play");

//判断是否正在播放,如果正在播放

if([self.player isPlaying]){

//暂停播放

[_player pause];

//按钮显示为播放

[self.playButtonsetTitle:@"播放"forState:(UIControlStateNormal)];

}else{

//开始播放

[_player play];

//按钮显示为暂停

[self.playButtonsetTitle:@"暂停"forState:(UIControlStateNormal)];

}

}

录音button

-(void)startButtonAction:(UIButton *)sender

{

NSLog(@"start");

//判断当录音状态为不录音的时候

if(!self.isRecoding){

//将录音状态变为录音

self.isRecoding = YES;

//将录音按钮变为停止

[self.recoronsetTitle:@"停止"forState:(UIControlStateNormal)];

//播放按钮不能被点击

[self.playButton setEnabled:NO];

self.playButton.titleLabel.alpha = 0.5;

//开始录音,将所获取到的录音存到文件里

self.recorder = [[AVAudioRecorderalloc] initWithURL:_tmpFilesettings:nilerror:nil];

//准备记录录音

[_recorderprepareToRecord];

//启动或者回复记录的录音文件

[_recorder record];

_player = nil;

}else{

//录音状态点击录音按钮,停止录音

self.isRecoding = NO;

[self.recoronsetTitle:@"录音"forState:(UIControlStateNormal)];

//录音停止的时候,播放按钮可以点击

[self.playButton setEnabled:YES];

[self.playButton.titleLabel setAlpha:1];

//停止录音

[_recorder stop];

_recorder = nil;

NSError *playError;

self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:_tmpFile error:&playError];

//当播放录音为空,打印错误信息

if(self.player == nil){

NSLog(@"Error crenting player: %@", [playError description]);

}

self.player.delegate = self;

}

}

​点击事件写完后,最后必须调用这个事件

//播放结束后调用方法

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

{

//按钮标题变为播放

[self.playButtonsetTitle:@"播放"forState:UIControlStateNormal];

}

相关文章

  • 关于iOS 录音功能

    啥也不说,直接上代码,复制即可 首先要引进系统包​CoreGraphics.framework Foundat...

  • iOS 录音功能

    https://www.jianshu.com/p/c1bdab0ddf59[https://www.jiansh...

  • iOS 录音功能

    音频基本知识 采样率(sampleRate)所谓采样就是在时间轴上对信号进行数字化。根据奈奎斯特定理(也称为采样定...

  • iOS中录音功能

    应用场景 在即时通讯APP中,例如微信,QQ,等都有语音发送功能,一般都要先将录音录制下来才能发送录音。 音频相关...

  • IOS之录音功能

    第一步导入头文件 首先导入头文件#import 和#import "lame.h" #######第二步 写访问...

  • iOS实现录音功能

    ps:文章内容的代码部分,由于不便暴露业务逻辑,可能会有部分删减,但是主体功能基本保留 背景 这段时间应公司业务需...

  • iOS 实现录音功能

    参考资料 https://www.jianshu.com/p/fb7dfb033989 音频文件相关知识 文件格式...

  • iOS 实现录音功能

    #pragma mark ===== 录制音频初始化 -(void)saveAudio{ AVAudioSes...

  • iOS 录音的常用设置 Objective-C

    本章涉及关于录音的以下几个要点· 构建录音环境· 录音 录音介绍 在iOS中录音的方法有很多这里采用了AVFoun...

  • iOS 关于启动app播放视频功能

    iOS 关于启动app播放视频功能 iOS 关于启动app播放视频功能

网友评论

    本文标题:关于iOS 录音功能

    本文链接:https://www.haomeiwen.com/subject/xspddttx.html