文档章节

h5直接播放amr文件

o
 opdjava
发布于 2016/12/01 16:34
字数 243
阅读 350
收藏 0

调微信的录音接口,生成的是amr文件,在h5中不能直接播放
github上有个用js写的amr解码器https://github.com/mykmelez/opencore-amr-js
具体自己去看代码,有demo

然后

android可以正常播放amr文件,ios的不支持
微信的amr文件的采样频路是8000,在ios中不支持,ios支持到20000多,具体没测
如果用超过8000的频率播放,语音速度会很快,ios的解决办法是加频率的同时加帧数

看代码

function playPcm(samples) {
    var ctx = getAudioContext();
    if (!ctx) {
        return $.toast('你的设备暂不支持播放语音');
    }
    var src = ctx.createBufferSource();
    var buffer;
    try{
      buffer = ctx.createBuffer(1, samples.length, 8000);
    }catch(e){
      buffer = ctx.createBuffer(1, samples.length * 3, 24000);
      var samples3 = new Float32Array(samples.length * 3);
      var ij = 0;
      for (var i = 0; i < samples.length; i++) {
        for (var j = 1; j <= 3; j++) {
          samples3[ij++] = samples[i];
        }
      }
      samples = samples3;
    }
    if (buffer.copyToChannel) {
        buffer.copyToChannel(samples, 0, 0)
    } else {
        var channelBuffer = buffer.getChannelData(0);
        channelBuffer.set(samples);
    }      
    src.buffer = buffer;
    src.connect(ctx.destination);
    //src.start();
    if (src.start) {
      src.start(0);
    } else if (src.play) {
      src.play(0);
    } else if (src.noteOn) {
      src.noteOn(0);
    }
}

 

© 著作权归作者所有

共有 人打赏支持
o
粉丝 0
博文 4
码字总数 558
作品 0
通州
私信 提问
AMR是什么类型文件 amr用什么播放器打开?

今天从网上下载了一个AMR格式的文件,经查找发现AMR是一种音频格式。主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的 AMR(...

播放器
2014/07/12
0
0
微信JS SDK录音功能的使用

根据公众号JS-SDK的官网文档(链接),可以比较方便的集成录音和播放功能。但录音保存的文件至多在他们服务器上保存3天,所有如果要长期保存,得下载到自己的服务器上(下载的方法),但下载...

swingcoder
2016/05/07
2.3K
0
iOS开发amr音频转化成wav错误

@Jeans 你好,想跟你请教个问题: 最近在做安卓的amr音频转化成wav 用来播放。但是安卓录制的我下载下来在电脑上播放不了,用opencore库判断都不是amr文件, 没法转化。。 但是我在网上下载的...

韩学鹏
2016/01/14
101
1
android支持的音频格式

oschina的各位朋友: 我用android2.2.1系统,利用系统自带的播放器播放aac,AMR-NB,AMR-WB,WMA格式音频文件,结果提示:此文件未知的mime-type; 请问下,android2.2.1系统支持这些音频格式么?...

ChenQi
2012/03/21
4K
2
AMR和WAV互相转换

---------------------------2015.8.25---------------------------------- ------- 安卓录制的amr转换出现问题的,请百度下载mediainfo,比对demo录制转换的amr参数是否一致。 也有人找我说...

人生好迈
2015/09/22
2.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

第1章

背景:因为最近在考教师资格证,考的是计算机学科,所以学科考的是:信息技术学科知识与教学能力;因此图书馆借了一本书,把最基本的知识看一遍,为之后的笔试和面试做充足的准备。 大学计算...

怪咖先生forever
今天
1
0
element-ui之el-collapse-transition(折叠展开动画)源码解析学习

项目中发现同事使用了element-ui的el-collapse-transition来做折叠展开效果,打开源码看了下发现挺有意思,来解析学习一番。 el-collapse-transition的引入方式 // fade/zoom 等import 'e...

学霸猫
今天
1
0
解释器模式_实战

前言 解释器模式是什么?这个设计模式其实比较冷门,不太会解释,用例子说明把。解释器模式一般用在sql,xml,json解析等场景。比如说你有一个json对象,你要获取这个对象中任意一个节点的值。...

grace_233
今天
6
0
告别2018

今天中午从喵喵家回来之后,倒头就睡到下午4点了。可能是之前透支的身体,在我放松下来后,开始觉得疲惫了,所以最近估计会进入嗜睡期。醒来之后,拿了包花生,开了瓶低糖菊花茶,听着网易云...

七木网络科技
今天
4
0
MySql数据库分表分区实践

1. 背景 —— 公司物联网项目 海量设备通过物联网服务接入云端,设备每30s上报一次自身数据(以下称为动态数据)。 物联网服务将设备上报的数据转发给数据处理网关,由数据入库网关执行批量入...

吴伟祥
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部