1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android中怎样调用自带的Base64实现文件与字符串的编码和解码

Android中怎样调用自带的Base64实现文件与字符串的编码和解码

时间:2020-09-23 02:21:36

相关推荐

Android中怎样调用自带的Base64实现文件与字符串的编码和解码

场景

需要将某音频文件mp3格式编码成字符串并能再将其转换为字符串。

注:

博客:

/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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if (inputStream != null) {inputStream.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.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 arrayFile 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 insteadFileInputStream fis = new FileInputStream(tempMp3);mediaPlayer.setDataSource(fis.getFD());mediaPlayer.prepare();mediaPlayer.start();} catch (IOException ex) {String s = ex.toString();ex.printStackTrace();}}

然后在需要将此字符串编码解码为语音文件的地方

File2StringUtils.playMp3(dataContent);

然后就可以将上面编码的字符串文件解编码为语音文件并播放。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。