android - Android:将音频转换为float []

标签 android audio short

我正在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();

但是我想通过使用绘图方法将该字节值转换为short或float以显示它们:
canvas.drawLine(xini,yini,xfinal,yfinal,paint)

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

非常感谢您的帮助!!

最佳答案

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

关于android - Android:将音频转换为float [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13273755/

相关文章:

Android 中继承中的 Java 泛型

java - 使用扫描生成正弦音 - Android

javascript - 如何将 blob URL 转换为音频文件并将其保存到服务器

java - 二维和一维数组

c++ - 将 '65280' 从 'int' 缩小到 { } 内的 'short int'

android - 如何找出该设备已连接到带有音频插孔 3.5 的手机?

android - Android 中的 GROUP BY 子句(ICS 及以上)

javascript - 如何将WaveSurfer js导出为音频文件?

Android 手机作为 SIP 和 CDMA 网络之间的 "proxy"

c - 添加两个短号码时