ios录音
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
@property(nonatomic,strong)AVAudioRecorder*record;
@property(nonatomic,strong)CADisplayLink *updatereflesh;
@property(nonatomic,assign)CGFloat timePress;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//添加两个按钮
UIButton *playBtn=[UIButton buttonWithType:UIButtonTypeCustom];
playBtn.backgroundColor=[UIColor greenColor];
playBtn.frame=CGRectMake(10, 40, 100, 50);
[self.view addSubview:playBtn];
[playBtn addTarget:self action:@selector(playMusic) forControlEvents:UIControlEventTouchUpInside];
UIButton *pauseBtn=[UIButton buttonWithType:UIButtonTypeCustom];
pauseBtn.backgroundColor=[UIColor redColor];
pauseBtn.frame=CGRectMake(10, 100, 100, 50);
[self.view addSubview:pauseBtn];
[pauseBtn addTarget:self action:@selector(pause) forControlEvents:UIControlEventTouchUpInside];
//沉默两秒自动停止录音
//获取沙盒路径保存文件
NSString *path=[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"123.caf"];
NSURL *url=[NSURL fileURLWithPath:path];
//录音
// //settings 设置参数 录音相关参数 声道 速率 采样率
// NSMutableDictionary *setting = [NSMutableDictionary dictionary];
// //2.够着 录音参数
// // 音频格式
// setting[AVFormatIDKey] = @(kAudioFormatAppleIMA4);
// // 音频采样率
// setting[AVSampleRateKey] = @(8000.0);
// // 音频通道数
// setting[AVNumberOfChannelsKey] = @(1);
// // 线性音频的位深度
// setting[AVLinearPCMBitDepthKey] = @(8);
AVAudioRecorder *recorder=[[AVAudioRecorder alloc]initWithURL:url settings:nil error:NULL];
self.record=recorder;
//允许监听
self.record.meteringEnabled=YES;
}
//开始播放
-(void)playMusic
{
NSLog(@"开始录音");
[self.record record];
//开启定时器
[self.updatereflesh addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
//暂停
-(void)pause
{
NSLog(@"结束录音");
[self.record stop];
NSLog(@"%@",NSHomeDirectory());
}
//创建定时器
-(CADisplayLink*)updatereflesh
{
if(!_updatereflesh)
{
_updatereflesh=[CADisplayLink displayLinkWithTarget:self selector:@selector(updateTimeAudioPinLv)];
}
return _updatereflesh;
}
-(void)updateTimeAudioPinLv
{
//时时更新分贝
[self.record updateMeters];
//获取当前分贝
CGFloat power=[self.record averagePowerForChannel:1];
//开始沉默记录时间
if(power<-30)
{
_timePress+=1.0/60;
if (_timePress>2.0) {
[self.record stop];
//定时器停止
[self.updatereflesh invalidate];
self.updatereflesh =nil;
}
}
else
{
_timePress=0;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ios录音的更多相关文章
- 【iOS 录音转码MP3及转码BASE64上传】
iOS 录音转码MP3及转码BASE64上传 一,开始录音 NSLog(@"开始录音"); [self startRecord]; - (void)startRecord { // ...
- Swift实现iOS录音与播放音频功能
作用AVPLayer:可以用来播放在线及本地音视频AVAudioSession:音频会话,主要用来管理音频设置与硬件交互使用时需要导入 #import <AVFoundation/AVFound ...
- lame,把ios录音转换为mp3格式
在ios设备中进行录音,录音文件的格式为caf.但这种格式在很多设备中没法播放.为了适应终端的播放功能,特将caf转换为mp3格式文件来使用. 在录制caf文件时,需要使用双通道,否则在转换为MP3格 ...
- 【iOS录音与播放】实现利用音频队列,通过缓存进行对声音的采集与播放
都说iOS最恶心的部分是流媒体,其中恶心的恶心之处更在即时语音. 所以我们先不谈即时语音,研究一下,iOS中声音采集与播放的实现. 要在iOS设备上实现录音和播放功能,苹果提供了简单的做法,那就是利用 ...
- ios录音、音频播放功能
#import <AVFoundation/AVFoundation.h> { NSInteger _timeCount; NSTimer *_timer; } @pro ...
- iOS录音加播放.
现在发现的事实有: 如果没有蓝牙设备, 那么可以用下面的方法边录音, 边放音乐: 在录音按钮按下的时候: _avSession = [AVAudioSession sharedInstance]; ...
- ios 录音
http://code4app.com/ios/%E5%BD%95%E9%9F%B3%E5%92%8C%E6%92%AD%E6%94%BE/51ba821b6803fa6901000000
- ios录音Demo
<AudioToolbox/AudioToolbox.h> :这个库是C的接口,偏向于底层,主要用于在线流媒体的播放 <AVFoundation/AVFoundation.h> ...
- iOS录音后播放声音小,AudioSessionInitialize failed,AudioQueueStart failed (-50)
方法1: UInt32 audioRoute = kAudioSessionOverrideAudioRoute_Speaker; AudioSessionSetProperty(kAudioSess ...
随机推荐
- 【leetcode】Path Sum II
Path Sum II Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals ...
- ios UIButton shadowcolor 导致黑边问题
注意这个属性,会导致按钮文字有一定黑边,其实就是阴影效果,如果不是想要的效果,应该把它设置为clearcolor.这种情况在亮色背景下比较突出.
- ACM/ICPC 之 树形DP(POJ1192)
将某点看做根状态,邻接点看做子状态,由子状态向根状态转移. POJ1192-最优连通子集 题解:将每一个点分成两个状态进行保存,因此可以构造一个数组dp[i][2]. dp[i][0]:不包括该点权值 ...
- python(pyqt)开发环境搭建
eric+pyqt 安装(python开发工具) 更多 0 Python python Eric是一个开源的.跨平台的python&ruby集成开发环境,基于python和pyqt运行.eri ...
- filter 简介
概述 filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组. 语法 var new_arrary = arr.filter(callback[, thisArg] ...
- 【网络】VPN和代理服务器的区别
来自:http://www.zhihujingxuan.com/19311.html [scotttony的回答(41票)]: VPN和ssh哪个比较好, 要看你怎么定义是“好”. ssh作为一个创建 ...
- UVA 10815 Andy's First Dictionary ---set
题目链接 题意:输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出.单词不区分大小写. 刘汝佳算法竞赛入门经典(第二版)P112 #include <iostream> ...
- ODBC连接发生错误:未发现数据源名称并且未指定默认驱动程序
程序在使用ODBC方式连接数据库时发生错误: ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序. 什么原因造成的呢? 本人使用&l ...
- 升级CUDA版本导致VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件
转自:http://www.cnblogs.com/yeahgis/p/3853420.html VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上 ...
- 项目之solr全文搜索工具之创建项目索引库
以创建项目baotao core为例 1. 在example目录下创建baotao-solr文件夹: 2. 将./solr下的solr.xml拷贝到baotao-solr目录下: 3. 在bao ...