我有下面的代码片段,它将.amr文件放入一个字节数组中。
我知道如何从标题中获取比特率,如下所示。所以假设比特率是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();
} }
答案 0 :(得分:0)
诺基亚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