当前位置: 首页 > news >正文

Android 播放mp3文件

1,在res/raw中加入mp3文件

2,实现播放类


import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.util.Log;import java.util.HashMap;
import java.util.Map;public class UtilSound {public static SoundPool sp;public static Map<Integer, Integer> suondMap;public static Context context;public static int SOUND_DI = 1;public static int SIZE = SOUND_DI ;//音频数量//init sound poolpublic static void initSoundPool(Context context) {UtilSound.context = context;sp = new SoundPool (SIZE, AudioManager.STREAM_MUSIC, 0);suondMap = new HashMap<Integer, Integer>();//tips soundssuondMap.put(SOUND_GET_SUCCESS,sp.load(context, R.raw.di, SOUND_DI));}//play soundpublic static void play(int soundID) {if(context==null||sp==null){Log.e("gcy", "play failed!"+context+" SoundPool="+sp );
//            return;}try {AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);float audioMaxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);float audioCurrentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);float volumnRatio = audioCurrentVolume / audioMaxVolume;//第一个参数soundID//第二个参数leftVolume为左侧音量值(范围= 0.0到1.0)//第三个参数rightVolume为右的音量值(范围= 0.0到1.0)//第四个参数priority 为流的优先级,值越大优先级高,影响当同时播放数量超出了最大支持数时SoundPool对该流的处理//第五个参数loop 为音频重复播放次数,0为值播放一次,-1为无限循环,其他值为播放loop+1次//第六个参数 rate为播放的速率,范围0.5-2.0(0.5为一半速率,1.0为正常速率,2.0为两倍速率)sp.play(soundID, volumnRatio, volumnRatio, 0, 0, 1f);//0.5-2.0 speed} catch (Exception e) {e.printStackTrace();}}}

3,初始化声音播放类,一般在onCreate中调用

UtilSound.initSoundPool (MainActivity.this);//初始化语音播放类

4,调用播放,初始化后可以多次调用

UtilSound.play(UtilSound.SOUND_DI);//播放 di

5,播放速度与音量等参数调节

http://www.lryc.cn/news/159167.html

相关文章:

  • 在OpenStack私有云上安装配置虚拟机
  • pyCharm远程DEBUG
  • 微服务框架Go-kit
  • 《王道24数据结构》课后应用题——第三章 栈和队列
  • 查看linux开发板的CPU频率
  • 对象模型和this指针(个人学习笔记黑马学习)
  • SpringCloudAlibaba常用组件
  • Shotcut for Mac:一款强大而易于使用的视频编辑器
  • 【数学建模】2023数学建模国赛C题完整思路和代码解析
  • 论数据库的种类
  • docker笔记4:高级复杂安装-mysql主从复制
  • MySQL卸载干净再重新安装【Windows】
  • 在VScode中如何将界面语言设置为中文
  • jenkins如何请求http接口及乱码问题解决
  • 景区洗手间生活污水处理设备厂家电话
  • Java基础(四)
  • Android WIFI工具类 特别兼容Android12
  • 【Android Framework系列】第14章 Fragment核心原理(AndroidX版本)
  • Python 网页爬虫原理及代理 IP 使用
  • 失效的访问控制及漏洞复现
  • MLOps:掌握机器学习部署:Docker、Kubernetes、Helm 现代 Web 框架
  • Python标识符命名规范
  • 对 fastq 和 bam 进行 downsample
  • 网络爬虫:如何有效的检测分布式爬虫
  • elementUI可拖拉宽度抽屉
  • OpenPCDet系列 | 8.4 nuScenes数据集数据调用和数据分析
  • WeiTitlePopupWindow
  • qemu/kvm学习笔记
  • android 车载widget小部件部分详细源码实战开发-千里马车载车机framework开发实战课程
  • 如何使用CSS画一个三角形