美文网首页
ios 录音器

ios 录音器

作者: Willism | 来源:发表于2017-07-15 09:30 被阅读0次

#import<AVFoundation/AVFoundation.h>

# define COUNTDOWN 60

@interface ViewController ()

{

NSTimer *_timer; //定时器

NSInteger countDown;  //倒计时

NSString *filePath;

}

@property (weak, nonatomic) IBOutlet UILabel *noticeLabel;

@property (nonatomic, strong) AVAudioSession *session;

@property (nonatomic, strong) AVAudioRecorder *recorder;//录音器

@property (nonatomic, strong) AVAudioPlayer *player; //播放器

@property (nonatomic, strong) NSURL *recordFileUrl; //文件地址

@end

@implementation ViewController


- (IBAction)starRecord:(id)sender {

NSLog(@"开始录音");

countDown = 60;

[self addTimer];

AVAudioSession *session =[AVAudioSession sharedInstance];

NSError *sessionError;

[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

if (session == nil) {

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

}else{

[session setActive:YES error:nil];

}

self.session = session;

//1.获取沙盒地址

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

filePath = [path stringByAppendingString:@"/RRecord.wav"];

//2.获取文件路径

self.recordFileUrl = [NSURL fileURLWithPath:filePath];

//设置参数

NSDictionary *recordSetting = [[NSDictionary alloc] initWithObjectsAndKeys:

//采样率  8000/11025/22050/44100/96000(影响音频的质量)

[NSNumber numberWithFloat: 8000.0],AVSampleRateKey,

// 音频格式

[NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey,

//采样位数  8、16、24、32 默认为16

[NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,

// 音频通道数 1 或 2

[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,

//录音质量

[NSNumber numberWithInt:AVAudioQualityHigh],AVEncoderAudioQualityKey,

nil];

_recorder = [[AVAudioRecorder alloc] initWithURL:self.recordFileUrl settings:recordSetting error:nil];

if (_recorder) {

_recorder.meteringEnabled = YES;

[_recorder prepareToRecord];

[_recorder record];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(60 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[self stopRecord:nil];

});

}else{

NSLog(@"音频格式和文件存储格式不匹配,无法初始化Recorder");

}

}


- (IBAction)stopRecord:(id)sender {

[self removeTimer];

NSLog(@"停止录音");

if ([self.recorder isRecording]) {

[self.recorder stop];

}

NSFileManager *manager = [NSFileManager defaultManager];

if ([manager fileExistsAtPath:filePath]){

_noticeLabel.text = [NSString stringWithFormat:@"录了 %ld 秒,文件大小为 %.2fKb",COUNTDOWN - (long)countDown,[[manager attributesOfItemAtPath:filePath error:nil] fileSize]/1024.0];

}else{

_noticeLabel.text = @"最多录60秒";

}

}


- (IBAction)PlayRecord:(id)sender {

NSLog(@"播放录音");

[self.recorder stop];

if ([self.player isPlaying])return;

self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:self.recordFileUrl error:nil];

NSLog(@"%li",self.player.data.length/1024);

[self.session setCategory:AVAudioSessionCategoryPlayback error:nil];

[self.player play];

}


/**

*  添加定时器

*/

- (void)addTimer

{

_timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(refreshLabelText) userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];

}


/**

*  移除定时器

*/

- (void)removeTimer

{

[_timer invalidate];

_timer = nil;

}

-(void)refreshLabelText{

countDown --;

_noticeLabel.text = [NSString stringWithFormat:@"还剩 %ld 秒",(long)countDown];

}


相关文章

  • ios 录音器

    #import # define COUNTDOWN 60 @interface ViewController (...

  • Senstone 智能首饰录音器

    Senstone 智能首饰录音器号称是可穿戴智能录音器,不单可以录下我们的声音,更重要的是可以自动将这些语音备忘转...

  • 2019-03-04

    。首先 镜头 录音器 印度人 影棚推延。

  • 录音器用户协议

    感谢您选择录音器服务,《录音器服务使用协议》(以下简称为“本协议”)是您与我们之间关于您使用会员服务所订立的协议。...

  • iOS音视频录音、播放、剪辑、合成

    一、录制 1、检测AVAudioSessionRecordPermission,用户是否有权限使用录音器 2、请求...

  • iOS简单的AVAudioRecorder录音器解决方案

    前言 AVAudioRecorder的简单用法,通过AVAudioRecorder进行录音。将录制好的音频保存的沙...

  • 初级录音器材套装推荐!

    声卡|Focusrite 2i2 淘宝参考价:1040元 新设计的话放其信噪比比级别的表现异常出色,这点对于录音至...

  • iOS录音

    caf是苹果自带录音器所录的格式, 录制后借助lame转mp3上传至腾讯云点播

  • 简约、品质、设计:Fluid Audio SRI-2 USB音频

    英国Sound on Sound杂志是世界最权威的录音器材和技术杂志。其专栏作者Paul White为我们带来了F...

  • iOS开发-IM语音录制

    这里主要介绍一下语音录制功能的实现,主要使用的录音器AVAudioRecorder,这里涉及到麦克风权限,这个是从...

网友评论

      本文标题:ios 录音器

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