首页 > 其他分享 >Android中怎样使用MediaPlayer播放byte数组音频文件

Android中怎样使用MediaPlayer播放byte数组音频文件

时间:2023-03-17 19:02:11浏览次数:52  
标签:tempMp3 MediaPlayer fos 音频文件 mediaPlayer ex Android byte


场景

在得到某音频文件的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

相关文章

  • 【Android 逆向】【攻防世界】ill-intentions
    1.apk安装到手机,啥输入框都没有2.apk拖入到jadx中看看publicclassMainActivityextendsActivity{@Override//android.app.ActivitypublicvoidonCr......
  • AndroidStudio数据库连接有问题
    packagecom.example.daka;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.EditTex......
  • Android学习之Intent接收返回数据
    send_main.xml:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/MyLayout"an......
  • 【Android 逆向】【攻防世界】人民的名义-抓捕赵德汉1-200
    1.这一题下载下来是个jar文件,感觉很android关系不大,但还是放在了mobile这个分类下了2.直接javajar运行,提示需要输入密码#java-jar169e139f152e45d5ae634223fe53e6b......
  • 【Android 逆向】【攻防世界】APK逆向
    1.apk安装到手机,提示输入flag2.jadx打开apk定位到checkSN方法publicbooleancheckSN(StringuserName,Stringsn){if(userName!=null){try{......
  • Android轻量级数据SparseArray详解
    SparseArray是Android中特有的数据结构,他的几个重要的特点;以键值对形式进行存储,基于二分查找,因此查找的时间复杂度为0(LogN);.由于SparseArray中Key存储的是数组形式,......
  • Android Studio预览Markdown文件办法
     01、安装Markdown插件打开File>>Settings>>Plugins>>Marketplace菜单,输入Markdown搜索,点击Install安装。02、下载ChooseRuntime插件JetBrains插件市场......
  • android studio之常用基本控件的使用
    转自:(7条消息)androidstudio之常用基本控件的使用_androidstudio控件栏_PPYY3344的博客-CSDN博客在Android开发中,需要使用的控件很多,除了TextView、Button、EditText......
  • Android android:exported="true" 属性
    android:exported="true"是什么android:exported其实并不是Android12的新属性,在前面的版本也可以看见它。它是Android中的四大组件Activity,Service,Provider,Receiver四......
  • 【Android 逆向】【攻防世界】android2.0
    这是一道纯算法还原题1.apk安装到手机,提示输入flag,看来输入就是flag2.jadx打开apk查看this.button.setOnClickListener(newView.OnClickListener(){//fr......