首页 > 代码库 > 网页开发之amr音频的播放

网页开发之amr音频的播放

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

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


网页开发之amr音频的播放