我的数据库有很多格式化base64的短音频.我想在点击按钮时播放音频.基本上,我写了这段代码,但它不起作用. (如果可能,文件最好不写入存储,因为此过程有延迟)
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
String url = "data:audio/mp3;base64,"+base64FormattedString;
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaPlayer.start();
}
catch(Exception e){
e.printStackTrace();
}
}
});
解决方法:
使用API约束,您可以使用AudioTrack.此外,它非常简单.使用AudioTrackyou可以播放自API 3以来的byte []音频数据.
您只需使用音频样本特性初始化您的AudioTrack对象:
AudioTrack audioTrack = new AudioTrack(...);
并致电:
audioTrack.play();
然后,您解码Base64数据:
byte[] data = Base64.decode(yourBase64AudioSample, Base64.DEFAULT);
并将其放入audioTrack进行播放:
int iRes = audioTrack.write(data, 0, data.length);
和TADAAA
标签:java,android
来源: https://codeday.me/bug/20190527/1164436.html