网页开发之amr音频的播放
网页开发之amr音频的播放
今幕明 发表于3年前
网页开发之amr音频的播放
  • 发表于 3年前
  • 阅读 4236
  • 收藏 6
  • 点赞 0
  • 评论 2

标题:腾讯云 新注册用户域名抢购1元起>>>   

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

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


共有 人打赏支持
粉丝 43
博文 220
码字总数 39350
评论 (2)
懵懂男孩
有没有调用插件类的,不要安装那种的吗?
今幕明

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

有没有调用插件类的,不要安装那种的吗?
目前没有
×
今幕明
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: