我正在尝试将一个OGG文件加载到AudioTrack上,这样我就可以管理播放速率并播放它。但是,我在"trackvoiceIndex = dis.readByte();“行得到一个空指针异常。我认为它超出了跟踪数组的界限。老实说,我对数据流知之甚少,所以我只是复制了这段代码。我很难理解它。任何帮助都会很感谢,谢谢。
.....
private AudioTrack voice = null;
private InputStream is = null;
private byte[] track = null;
private BufferedInputStream bis = null;
private DataInputStream dis = null;
.......
int playbackRate = 0;
is = getResources().openRawResource(sentences[index].voice);
bis = new BufferedInputStream(is, 8000);
dis = new DataInputStream(bis);
while (dis.available() > 0){
track[voiceIndex] = dis.readByte();
voiceIndex++;
}
voice.write(track, 0, track.length);
playbackRate = voice.getPlaybackRate();
voice.play();发布于 2013-01-23 20:24:23
你可以使用API获取音频数据:link,但它可以从API级别16获得。在较早的版本中,你可以使用一个外部库来解码音频。
https://stackoverflow.com/questions/6630618
复制相似问题