文档章节

网页开发之amr音频的播放

今幕明
 今幕明
发布于 2014/11/11 15:20
字数 401
阅读 4281
收藏 6
点赞 0
评论 2

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;  
    }

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


© 著作权归作者所有

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

评论(2)

今幕明
今幕明

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

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

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

播放器 ⋅ 2014/07/12 ⋅ 0

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

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

哎码 ⋅ 2015/12/11 ⋅ 1

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

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

韩学鹏 ⋅ 2016/01/14 ⋅ 1

iPhone 播放音频声音文件

播放音频声音文件 iphone开发中播放声音文件主要使用AVAudioPlayer 类,它的功能非常强大支持播放音频的格式也非常的多,我们可以把它看成一个高级的音乐播放器,它支持的播放格式有 ■ AAC ...

彭博 ⋅ 2012/03/09 ⋅ 0

微信JS SDK录音功能的使用

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

swingcoder ⋅ 2016/05/07 ⋅ 0

android支持的音频格式

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

ChenQi ⋅ 2012/03/21 ⋅ 2

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

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

xaozu ⋅ 2014/01/18 ⋅ 1

iOS 多媒体

一、音频 在iOS开发中,主要使⽤用四种⽅式来播放音频: System Sound Services (系统声音服务) AVAudioPlayer (高级音频播放器) : 只能播放一个完整的音频, 完全下载好的 AVPlayer(负责视频操...

从訫开始_倾深爱 ⋅ 2016/09/14 ⋅ 0

[转载]Symbian上的流媒体视频实验(1)

原文来自: 手机开发 - chenwayne http://www.cublog.cn/u/26691/showart_1162401.html 本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/05/15/1457981.h......

长征2号 ⋅ 2017/09/05 ⋅ 0

Android音频开发之音频基本概念

Android音频开发之音频基本概念 采集一般使用 或者 音频采集的来源是什么? 一般是麦克风 采样率(单位:赫兹) 每秒钟音频采样点个数(8000/44100Hz),模拟信号数字化的过程,用0101来表示的数...

六号表哥 ⋅ 03/31 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部