ios录音

Android 能够暂停的录音功能

99封情书 提交于 2020-03-29 12:17:19
Android ApI提供了MediaRecorder和AudioRecord两个类给开发者来很方便地实现音视频的录制(前者可以实现音频和视频的录制,后者只能实 现音频的录制)。这两个类都提供了start()和stop()方法用于开始和结束音频或视频的录制,但令人费解的是这两个类都没有提供pause()方 法用于暂停录制音视频,因为在实际应用当中,暂停录制的功能是非常有必要的Android 实现能够暂停的录音功能 需实现音频录制的暂停功能,并且生成的音频文件格式必须是m4a格式 为什么项目中音频文件一定要采用m4a格式的呢?有以下几点原因: 1. 录制相同时间的音频,使用m4a格式存储的文件的大小要比使用其它格式类型存储的文件的大小要小(通过实验多次,在相同采样率16000的情况下,一般录 制5分钟的音频,采用m4a格式存储的音频文件只有1.2Mb,而采用arm、mp3及其它格式的一般都有2-5Mb),这样当用户需要 下载 或上传录制的音频文件时,可以节省流量,并且相同压缩率的前提下,m4a格式音频的音质相比其它格式的也更高; 2.产品同时拥有Android客户端和IOS客户端,那为了避免使用Android客户端的用户录制的音频上传到服务器之后,使用IOS客户端的用户下 载下来发生无法播放的问题,我们需统一录制音频的存储格式

关于ios下录音

早过忘川 提交于 2020-03-29 12:13:03
http://blog.csdn.net/silencetq/article/details/8447400 我是采用的AVAudioRecorder这个框架来进行录音 这个录音跟官方网站上的speakHere有些区别,最大的区别是,这个必须要录制完成才能处理文件,而speakhere示例是可以实现边录制边上传的效果。 #import <AVFoundation/AVFoundation.h> #import <CoreAudio/CoreAudioTypes.h> 引入框架,这是使用录音功能的基本配备 先说明一点,默认AVAudioRecorder录制后的格式是.caf,而大部分的播放器都是不支持这个格式的,下面一段设置是可以让录制格式是wav的格式 NSDictionary *recordSetting = [[ NSDictionary alloc ] initWithObjectsAndKeys : [ NSNumber numberWithFloat: 44100.0], AVSampleRateKey, //采样率 [ NSNumber numberWithInt : kAudioFormatLinearPCM ],AVFormatIDKey , [ NSNumber numberWithInt: 16], AVLinearPCMBitDepthKey,//采样位数

【iOS录音与播放】实现利用音频队列,通过缓存进行对声音的采集与播放

老子叫甜甜 提交于 2020-01-15 04:01:51
都说iOS最恶心的部分是流媒体,其中恶心的恶心之处更在即时语音。 所以我们先不谈即时语音,研究一下,iOS中声音采集与播放的实现。 要在iOS设备上实现录音和播放功能,苹果提供了简单的做法,那就是利用AVAudioRecorder和AVAudioPlayer。度娘大多数也是如此。但是这种方法有很大的局限性。单说说这种做法:录音,首先得设置录音文件路径,然后录音数据直接写入了文件。播放也是首先给出文件路径,等到音频整个加载完成了,才能开始播放。这相当不灵活。 我的做法是利用音频队列AudioQueue,将声音暂存至缓冲区,然后从缓冲区取出音频数据,进行播放。 声音采集: 使用AudioQueue框架以队列的形式处理音频数据。因此使用时需要给队列分配缓存空间,由回调(Callback)函数完成向队列缓存读写音频数据的功能。 一个Recording Audio Queue,包括Buffer(缓冲器)组成的Buffer Queue(缓冲队列),以及一个Callback(回调)。实现主要步骤为: 设置音频的参数 准备并启动声音采集的音频队列 在回调函数中处理采集到的音频Buffer,在这里是暂存在了一个Byte数组里,提供给播放端使用 Record.h #import <Foundation/Foundation.h> #import <AudioToolbox/AudioToolbox.h

iOS中调用系统录音功能及其播放

瘦欲@ 提交于 2019-12-28 23:25:52
最近做的项目中,用到了录音的功能,简单记录一下。 我的想法是:通过重写button的点击事件,来达到录音的目的。 /*----------------------------------【录音】-----------------------------*/ 首先,需要新建文件,并继承于UIButton,暂且命名为 TDRecoedButton; 在.h文件中: #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> #import <AVFoundation/AVFoundation.h> typedef void (^successRecordToSend)(NSInteger time,NSURL *url); typedef void (^faildRecordToSend)(NSString * reason); @interface TDRecoedButton : UIButton<AVAudioRecorderDelegate> { AVAudioRecorder *recorder;  //录音的对象 NSTimer *timer;        //时间 NSURL *urlPlay;        //保存路径 } //录音并保存成功 @property (nonatomic,copy)

html5 解决base64转成语音文件ios播放失败

半城伤御伤魂 提交于 2019-11-26 19:25:06
1.录音的时候设置语音格式为amr function startRecord() { startTimestamp = (new Date()).getTime(); r = null; r = plus.audio.getRecorder(); r.record({ format:"amr", filename: "_doc/audio/" }, function(p) { console.log(p); rurl = p; if(IsSendAudio){ //执行发送方法 sendAudio(rurl); }else{ plus.io.resolveLocalFileSystemURL(rurl,function(entry){ entry.remove(); },function(e){}) } }, function(e) { alert("Audio record failed: " + e.message); }); } 2.base64转语音文件到本地 //将base64编码转换成录音文件 dataURL2Audio = function(base64Str, callback) { var myArray=new Array(); var myArray = base64Str.split(";base64,"); console.log(myArray[1]+