文档章节

网页开发之amr音频的播放

今幕明
 今幕明
发布于 2014/11/11 15:20
字数 401
阅读 4308
收藏 6

mp3格式播放大家都知道,amr格式就陌生了,至少我之前没有做过

amr格式文件播放出来的声音音质比mp3差,主要应用于手机铃声和手机录音,目的是为了给手机用户节省流量。大部分主流的音视频播放器都支持amr格式,现在要实现网页播放有点问题(还要考虑兼容性)。百度一番,调试一番,终于听到声音了。

笔者采用的播放插件是QuickTime,不知道的可以百科一下,下面就是方法了:
1、下载QuickTime软件并安装,地址 http://www.apple.com/quicktime/download/index.html
2、在网页添加以下代码
//<//embed controller="true" bgcolor="black" target="myself" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/index.html" align="middle" height="10" width="1000">

3、效果,无图无真相,进度条会动的哦

[转载]网页开发之amr音频的播放(后台判断音频长度)

IE、FireFox、chrome测试通过。
另外附上后台得到amr音频的播放长度的java代码

public static long getAmrDuration(File file) throws IOException {  
        long duration = -1;  
        int[] packedSize = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0 };  
        RandomAccessFile randomAccessFile = null;  
        try {  
            randomAccessFile = new RandomAccessFile(file, "rw");  
            long length = file.length();//文件的长度  
            int pos = 6;//设置初始位置  
            int frameCount = 0;//初始帧数  
            int packedPos = -1;  
 
            byte[] datas = new byte[1];//初始数据值  
            while (pos <= length) {  
                randomAccessFile.seek(pos);  
                if (randomAccessFile.read(datas, 0, 1) != 1) {  
                    duration = length > 0 ? ((length - 6) / 650) : 0;  
                    break;  
                }  
                packedPos = (datas[0] >> 3) & 0x0F;  
                pos += packedSize[packedPos] + 1;  
                frameCount++;  
            }  

            duration += frameCount * 20;//帧数*20  
        } finally {  
            if (randomAccessFile != null) {  
                randomAccessFile.close();  
            }  
        }  
        return duration;  
    }

方法自己调用,亲测可用。


本文转载自:http://blog.sina.com.cn/s/blog_7360f2930101lyrn.html

共有 人打赏支持
今幕明
粉丝 46
博文 224
码字总数 39350
作品 0
朝阳
程序员
加载中

评论(2)

今幕明
今幕明

引用来自“懵懂男孩”的评论

有没有调用插件类的,不要安装那种的吗?
目前没有
懵懂男孩
有没有调用插件类的,不要安装那种的吗?
AMR是什么类型文件 amr用什么播放器打开?

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

播放器
2014/07/12
0
0
微信返回的amr格式音频要怎么在html上面播放呢?

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

哎码
2015/12/11
3K
1
iOS开发amr音频转化成wav错误

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

韩学鹏
2016/01/14
72
1
微信JS SDK录音功能的使用

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

swingcoder
2016/05/07
2.3K
0
android支持的音频格式

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

ChenQi
2012/03/21
4K
2

没有更多内容

加载失败,请刷新页面

加载更多

给MySQL授权远程访问

putty登录服务器; 登录MySQL: mysql -u root -p 新建远程用户: CREATE USER 'myusername' IDENTIFIED BY 'mypassword'; 授权: grant all on *.* to john@'101.102.103.104' identified by......

sweethome
57分钟前
0
0
在t-io老巢造谣,不过有造谣的就会有反造谣的!

只发当事人的截图,不发表评论,以免有引导嫌疑 PS: 截图是由不同的人发过来的 本人已经不在此微信群 图3:有造谣的,就有反造谣的 图4是2018-09-23的t-io官方群的一个发言小统计,有助于让...

talent-tan
今天
99
0
heartbeat 资源

drbd+apache+heartbeat : http://blog.51cto.com/11838039/1827901 heartbeat双机热备的架设 : http://blog.51cto.com/11838039/1827560 对heaetbeat的深一步认识 : http://blog.51cto.co......

寰宇01
今天
4
0
Spring 转换 model 为 json 时增加属性

缘起 目前的项目中有个需求是在附件对象转换成 json 时增加个 url 属性,以前的方式是在返回附件对象或列表时候做一次统一处理,这次想看看 spring 或者 jackson fasterxml 是否自带类似功能...

郁也风
今天
4
0
10大PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的 10个开源的Php比特币项目,将有助于你了解在自己的应用中 如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方...

汇智网教程
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部