场景
需要将某音频文件mp3格式编码成字符串并能再将其转换为字符串。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
首先新建一个工具类File2StringUtils并在工具类中新建方法实现将文件编码为字符串
public static String fileToBase64(InputStream inputStream) {
String base64 = null;
try {
byte[] bytes = new byte[inputStream.available()];
int length = inputStream.read(bytes);
base64 = Base64.encodeToString(bytes, 0, length, Base64.DEFAULT);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return base64;
}
然后在res下新建raw目录,在此目录下存放一个mp3的音频文件。
然后在需要将文件编码为字符串的地方
InputStream is = getResources().openRawResource(R.raw.b32);
msg = File2StringUtils.fileToBase64(is);
然后就可以将此mp3编码成Base64格式的字符串
然后在工具类中再新建一个解码的方法 ,通过
byte[] mp3SoundByteArray = Base64.decode(content, Base64.DEFAULT);// 将字符串转换为byte数组
剩下的就可以根据自己的需求将字节数据进行相应的操作,比如这里是将其存储到临时文件中
并进行播放
public static void playMp3(String content) {
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();
}
}
然后在需要将此字符串编码解码为语音文件的地方
File2StringUtils.playMp3(dataContent);
然后就可以将上面编码的字符串文件解编码为语音文件并播放。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/136490.html