文档章节

h5直接播放amr文件

o
 opdjava
发布于 2016/12/01 16:34
字数 243
阅读 199
收藏 0
点赞 0
评论 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

微信JS SDK录音功能的使用

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

swingcoder ⋅ 2016/05/07 ⋅ 0

关于录音播放的一些问题记录

问题:将网络录音播放器,也能播放本地录音 解决1:单独为本地录音创建开始录音,更新进度条,暂停录音等方法 解决 收获,跟ui有关系的都要放到handler中区执行,因为那才是在主线程中,不让...

xaozu ⋅ 2014/01/18 ⋅ 1

网页开发之amr音频的播放

mp3格式播放大家都知道,amr格式就陌生了,至少我之前没有做过 amr格式文件播放出来的声音音质比mp3差,主要应用于手机铃声和手机录音,目的是为了给手机用户节省流量。大部分主流的音视频播...

今幕明 ⋅ 2014/11/11 ⋅ 2

iOS开发amr音频转化成wav错误

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

韩学鹏 ⋅ 2016/01/14 ⋅ 1

转: ios与android语音互通方案,类微信

Ios实现amr编解码 Feb 5th, 2012 介绍 学习ios第一个练手功能就是给已有产品加上语音通信功能,能够互通ios与android。这里给出自己的一些心得,希望能给他人一些参考。 资料搜集与参考 类似...

天下杰论 ⋅ 2014/10/30 ⋅ 0

android支持的音频格式

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

ChenQi ⋅ 2012/03/21 ⋅ 2

微信返回的amr格式音频要怎么在html上面播放呢?

html5不支持amr格式音频,现在只发现能用暴风影音播放,还需要安装解码器。。。 现在需求提出要直接在网页上面播放了,所以就用了apple上的quicktime,然后老是又奇奇怪怪的问题 比如chrome被...

哎码 ⋅ 2015/12/11 ⋅ 1

AMR和WAV互相转换

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

人生好迈 ⋅ 2015/09/22 ⋅ 0

iOS音频格式之AMR和WAV互转(更新支持64位)

---------------------------2016.6.15---------------------------------- ------- 有些小伙伴遇到想把采样率调高到16kHZ,关于arm-wb,请戳这里:编译vo-armwbenc iOS (16kHZ wav文件转amr......

Jeans ⋅ 2012/07/31 ⋅ 17

没有更多内容

加载失败,请刷新页面

加载更多

下一页

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 21分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 29分钟前 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 42分钟前 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 52分钟前 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

zabbix 3.4安装

#已装好lamp环境 1.安装相关yum仓库 rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm #tip:rpm -ql zabbix-release 看上面这个软件装了哪些东......

山月关 ⋅ 今天 ⋅ 0

Java的Excel导出工具类

首先在POM中引入需要的Jar <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><dependency><groupId>o......

Kxvz ⋅ 今天 ⋅ 0

springboot 使用jsp

目录结构: 启动文件的Application必须在contorller文件的父级 文件路径在src/main/webapp下面 我的配置:前缀是/WEB-INF/jsp/ pom.xml需要加入tomcat-embed-jasper, 对jsp的支持的依赖 <de...

夜醒者 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部