场景
在得到某音频文件的byte[]后使用MediaPlayer将其播放出来。
注:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
新建工具类方法
try {
byte[] mp3SoundByteArray = Base64.decode(content, Base64.DEFAULT);// 将字符串转换为byte数组
// create temp file that will hold byte array
File tempMp3 = File.createTempFile("badao", ".mp3");
tempMp3.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tempMp3);
fos.write(mp3SoundByteArray);
fos.close();
// Tried reusing instance of media player
// but that resulted in system crashes...
MediaPlayer mediaPlayer = new MediaPlayer();
// Tried passing path directly, but kept getting
// "Prepare failed.: status=0x1"
// so using file descriptor instead
FileInputStream fis = new FileInputStream(tempMp3);
mediaPlayer.setDataSource(fis.getFD());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException ex) {
String s = ex.toString();
ex.printStackTrace();
}
其中content是音频文件编码之后的字符串。
然后将其解编码为字节数据,然后存储到临时文件并进行播放。
标签:tempMp3,MediaPlayer,fos,音频文件,mediaPlayer,ex,Android,byte From: https://blog.51cto.com/BADAOLIUMANGQZ/6127850