没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
关于vue使用recorder.js录音功能,供大家参考,具体内容如下 ** 1, 引入外部js文件 import { HZRecorder} from ‘…/…/utils/HZRecorder.js’; js文件内容 export function HZRecorder(stream, config) { config = config || {}; config.sampleBits = config.sampleBits || 16; //采样数位 8, 16 config.sampleRate = config.sampleRate || 16000; //采样率
资源推荐
资源详情
资源评论

















vue使用使用recorder.js实现录音功能实现录音功能
关于vue使用recorder.js录音功能,供大家参考,具体内容如下
**
1,, 引入外部引入外部js文件文件
import { HZRecorder} from ‘…/…/utils/HZRecorder.js’;
js文件内容
export function HZRecorder(stream, config) {
config = config || {};
config.sampleBits = config.sampleBits || 16; //采样数位 8, 16
config.sampleRate = config.sampleRate || 16000; //采样率16khz
var context = new (window.webkitAudioContext || window.AudioContext)();
var audioInput = context.createMediaStreamSource(stream);
var createScript = context.createScriptProcessor || context.createJavaScriptNode;
var recorder = createScript.apply(context, [4096, 1, 1]);
var audioData = {
size: 0 //录音文件长度
, buffer: [] //录音缓存
, inputSampleRate: context.sampleRate //输入采样率
, inputSampleBits: 16 //输入采样数位 8, 16
, outputSampleRate: config.sampleRate //输出采样率
, oututSampleBits: config.sampleBits //输出采样数位 8, 16
, input: function (data) {
this.buffer.push(new Float32Array(data));
this.size += data.length;
}
, compress: function () { //合并压缩
//合并
var data = new Float32Array(this.size);
var offset = 0;
for (var i = 0; i < this.buffer.length; i++) {
data.set(this.buffer[i], offset);
offset += this.buffer[i].length;
}
//压缩
var compression = parseInt(this.inputSampleRate / this.outputSampleRate);
var length = data.length / compression;
var result = new Float32Array(length);
var index = 0, j = 0;
while (index < length) {
result[index] = data[j];
j += compression;
index++;
}
return result;
}
, encodeWAV: function () {
var sampleRate = Math.min(this.inputSampleRate, this.outputSampleRate);
var sampleBits = Math.min(this.inputSampleBits, this.oututSampleBits);
var bytes = this.compress();
var dataLength = bytes.length * (sampleBits / 8);
var buffer = new ArrayBuffer(44 + dataLength);
var data = new DataView(buffer);
var channelCount = 1;//单声道
var offset = 0;
var writeString = function (str) {
for (var i = 0; i < str.length; i++) {
data.setUint8(offset + i, str.charCodeAt(i));
}
}
资源评论


weixin_38611508
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 东北师范大学奥鹏算法分析与设计20春在线作业2标准答案------.pdf
- 基于单片机停车场设计文献综述.doc
- 电子商务物流体系的探析以京东商城为例.doc
- 计算机网络重点知识总结谢希仁版.doc
- 复杂网络无标度特性.ppt
- 2023年助理电子商务师个人整理题库.doc
- 使用Project进行项目管理.doc
- 网络存储NAS解决方案样本.doc
- 软件工程测试实验.doc
- 基于51单片机最小系统设计.doc
- 基于前项差分和动态阈值的PPG心率测量算法.pdf
- 实训-XX产品网络营销分析.doc
- 工程项目管理的基本方法.docx
- 十字路口带倒计时显示的交通信号灯控制的课程设计.doc
- 工程项目管理补充知识.doc
- 从零开始基于QEMU虚拟化平台构建RISC-V64架构嵌入式开发板并移植操作系统的完整教程项目-包含硬件仿真环境搭建-设备树编写-外设驱动开发-操作系统移植-交叉编译工具链配置-调.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
