java - AMR帧大小计算

标签 java android audio amr

我有下面的代码片段,它将.amr文件放入字节数组。

我知道如何从 header 中获取比特率,如下所示。因此,假设比特率为7.95,那么用于计算帧大小的公式是什么?谢谢。

public void getFrames() {
        File inputFile = new File(getmFileName());
        try {
            FileInputStream fis = new FileInputStream(inputFile);

            byte fileContent[]= new byte[(int) inputFile.length()];

            fis.read(fileContent); // Reads the file content as byte.
            fis.close();

            int count = 0;
            for (int i = 0; i < 8; i++) {

               Log.i(LOG_TAG, "byte"+ fileContent[i]);
               count++;
               Log.i(LOG_TAG, "7thbyte_of_1stHeader:" + ((fileContent[7]>>3)& 0x0F) );
            }} catch (Exception ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();

        }   }

最佳答案

诺基亚offers the following table,用于了解编解码器模式(CMR),比特率和帧大小之间的关系:

CMR     MODE        FRAME SIZE( in bytes )
0      AMR 4.75        13
1      AMR 5.15        14 
2      AMR 5.9         16
3      AMR 6.7         18
4      AMR 7.4         20
5      AMR 7.95        21
6      AMR 10.2        27
7      AMR 12.2        32

关于java - AMR帧大小计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676906/

相关文章:

ios - 如何启用 MPMediaItemArtwork 下一个/上一个按钮?

iphone - 在 MonoTouch 中使用 AVPlayer 播放背景音频?

javascript - html音频在单击播放时静音,然后在单击静音时再次静音

java - org.xml.sax.SAXParseException : Unexpected token while parsing XML

java - FedEx 跟踪 API 错误 9040 - Java Web 服务

java - java中的JS样式警告框

android - 在 NumberPicker 中显示更多数字

android - 将种子数据库与 Parse 本地数据存储集成

java - 为什么尝试将 SurfaceView 与相机关联时抛出 `UnsupportedOperationException` ?

java - securitypolicy 策略不是 <wsp :Policy> element