Android:将音频转换为浮点数[]

Posted

技术标签:

【中文标题】Android:将音频转换为浮点数[]【英文标题】:Android: Convert Audio into float[] 【发布时间】:2012-11-07 16:18:06 【问题描述】:

我正在 android 中开发一个应用程序,它必须记录声音并在屏幕上显示一些代表声音频率或强度的值。

为了记录,我使用这段代码:

mRecorder.setAudiosource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile(name);
mRecorder.prepare();
mRecorder.start();

然后我最初尝试将存储的文件转换为这样的字节:

DataInputStream dis1 =  new DataInputStream ( new FileInputStream (name));
byte[] datainBytes1 = new byte[dis1.available()];
dis1.readFully(datainBytes1);
dis1.close();

但我想将该字节值转换为短或浮点数以使用绘图方法显示它们:

canvas.drawLine(xini,yini,xfinal,yfinal,paint)

您能否推荐我另一种将音频文件转换为我可以绘制的短值的方法?

非常感谢您的帮助!!

【问题讨论】:

【参考方案1】:

我认为您尝试显示录制声音的方式不正确。作为起点,您需要学习音频编码格式并查看以下 android 类:http://developer.android.com/reference/android/media/AudioTrack.html

【讨论】:

【参考方案2】:

Here 您会发现一个库类,用于在考虑有符号/无符号、大/小端和样本大小的情况下在浮点数和字节之间进行转换。

https://java.net/projects/gervill/sources/Mercurial/content/src/com/sun/media/sound/AudioFloatConverter.java

【讨论】:

以上是关于Android:将音频转换为浮点数[]的主要内容,如果未能解决你的问题,请参考以下文章

用脚编码音频:将 32 位浮点数转换为 mp3

无法将数组转换为浮点数python

sklearn-LinearRegression:无法将字符串转换为浮点数:'--'

ValueError:无法将字符串转换为浮点数:'GIAC'

我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]

ValueError:无法将字符串转换为浮点数:'Bad'