我正在使用安卓系统,试图让我的AudioTrack应用程序播放一个Windows .wav文件(Tada.wav)。 坦率地说,这不应该这么难,但我听到了很多奇怪的东西。 该文件保存在我的手机的迷你SD卡上,读取内容似乎没有问题,但当我播放该文件时(参数我只确定是正确的),我得到几秒钟的白噪声,然后声音似乎解决了,只是可能是正确的。
我已经成功地在电话上录制并播放了我自己的声音 -- 我根据这个例子中的指示创建了一个.pcm文件。
http://emeadev.blogspot.com/2009/09/raw-audio-manipulation-in-android.html
(没有反向屏蔽)...
谁有一些建议或意识到网络上有一个在Android上播放.wav文件的例子?
我偶然发现了答案(坦率地说,是通过尝试&^@!我不认为会成功),如果有人感兴趣的话...... 在我的原始代码中(源自原帖链接中的例子),数据是这样从文件中读取的。
InputStream is = new FileInputStream (file); BufferedInputStream bis = new BufferedInputStream (is, 8000); DataInputStream dis = new DataInputStream (bis); // Create a DataInputStream to read the audio data from the saved file int i = 0; // Read the file into the "music" array while (dis.available() > 0) music[i] = dis.readShort(); // This assignment does not reverse the order dis.close(); // Close the input stream
在这个版本中,music[]是SHORTS的数组。 所以,readShort()方法在这里似乎是有意义的,因为数据是16位PCM......。 然而,在Android上,这似乎是个问题。 我把这段代码改为如下。