Android 播放mp3文件

news2024/10/3 10:36:16

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 pool
    public static void initSoundPool(Context context) {
        UtilSound.context = context;

        sp = new SoundPool (SIZE, AudioManager.STREAM_MUSIC, 0);
        suondMap = new HashMap<Integer, Integer>();
        //tips sounds
        suondMap.put(SOUND_GET_SUCCESS,sp.load(context, R.raw.di, SOUND_DI));
    }

    //play sound
    public 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.coloradmin.cn/o/982904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NIFI关于Variables的使用

说明 NIFI中的变量&#xff08;variables&#xff09;和参数&#xff08;parameters&#xff09;在引用的时候是有区别的。 参数的引用是使用#{参数名}的形式。 变量是使用${变量名}的形式来引用。 nifi版本&#xff1a;1.23.2&#xff08;docker镜像&#xff09; Variable…

【ViT(Vision Transformer)】(一) 中英双语

ViT&#xff08;Vision Transformer&#xff09; ABSTRACT1 INTRODUCTION2 RELATED WORK4 EXPERIMENTS4.1 SETUP4.2 COMPARISON TO STATE OF THE ART4.3 PRE-TRAINING DATA REQUIREMENTS 5 CONCLUSION4.4 SCALING STUDY4.5 INSPECTING VISION TRANSFORMER 5 CONCLUSION声明 ABS…

SCRUM敏捷产品负责人(CSPO)认证培训课程

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架。产品负责人是Scrum的三个角色之一&#xff0c;产品负责人在Scrum产品开发当中扮演舵手的角色&#xff0c;他决定产品的愿景、路线图以及投资回报&#xff0c;他需要回答…

正中优配:股市营业时间?

股市经营时间是指股票买卖商场的开放时间&#xff0c;每个国家、区域的股市经营时间都不同。股市经营时间确实定是由国家和商场交通情况、买卖商的需求等多种要素归纳考虑而得出的。本文将从股市经营时间的重要性、不同国家和区域的股市经营时间、股市经营时间影响股民的出资心…

运维事故减少80%,工单和值守服务上大分

“相比较系统上线之前&#xff0c;事故降低了80%&#xff0c;我们运维工程师时间节约40%&#xff01; ”福建某企业信息部沈工说。 “监控系统如果没有工单服务台&#xff0c;发现问题&#xff0c;没有解决问题方案&#xff0c;也没闭环的服务流程&#xff0c;那事实上没有起到…

深信服应用交付报表系统任意文件读取漏洞复现

文章目录 深信服应用交付报表系统任意文件读取漏洞复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 深信服应用交付报表系统任意文件读取漏洞复现 0x01 前言 本次测试仅供学习使用&#xff0c;如若非法他用&…

说说BTree和B+Tree

分析&回答 B树索引是B树在数据库中的一种实现&#xff0c;是最常见也是数据库中使用最为频繁的一种索引。B树中的B代表平衡&#xff08;balance&#xff09;&#xff0c;而不是二叉&#xff08;binary&#xff09;&#xff0c;因为B树是从最早的平衡二叉树演化而来的。 接…

第二证券:股吧沸腾!AI算力新龙头来了?

9月6日晚间&#xff0c;中贝通讯披露公告&#xff0c;公司与青海联通签定算力服务结构协议&#xff0c;青海联通拟向中贝通讯批量收买AI算力服务&#xff0c;服务费总金额为3.46亿元&#xff08;含税&#xff09;。 到9月6日&#xff0c;中贝通讯报27.58元/股&#xff0c;最新…

正中优配:国内怎么买美股?

近年来&#xff0c;随着我国经济的发展和对全球金融市场的越来越深入的了解&#xff0c;越来越多的投资者开始重视美国股市。而想要在国内购买美国股票并不是一件简单的事情&#xff0c;本文将从多个视点进行剖析。 一、注册海外买卖账户 在国内购买美股的条件是需求注册海外买…

Spring boot环境搭建

使用IDE工具&#xff1a;IntelliJ IDEA 目录 一、安装JAVA 二、安装maven&#xff08;Java项目管理工具&#xff09; 三、安装IDE 四、在IDE中配置spring boot项目环境 1、配置jdk 2、配置maven 3、安装创建spring boot项目插件&#xff1a;Spring Assistant 4、安装简…

使用Smartctl脚本输入当前所有磁盘的状态

一、安装Smartctl yum install smartmontools 二、写一个脚本输出当前所有磁盘的状态并且按名称分别写入到文件中 #!/bin/bashfor dev in $(lsblk -l | grep disk | awk {print $1}) doecho "检测磁盘 $dev"smartctl -a /dev/$dev > $dev.smartctl done 以下是这…

基于SpringBoot+thymeleaf的物资管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 这是一个物资管理系统…

【校招VIP】产品群面角色之闪光者

考点介绍&#xff1a; 闪光者在群面中要注意&#xff0c;在别人表述的时候需要找关键点&#xff0c;听到与之契合的要点时&#xff0c;审时度势的插入战局给予贡献性意见。 产品群面角色之闪光者-相关题目及解析内容可点击文章末尾链接查看&#xff01;一、考点题目 1. 一个产…

typeScript学习笔记(一)

学习资源来自&#xff1a; 类与接口 TypeScript 入门教程 (xcatliu.com) 一.TypeScript的安装和运行 1.安装TypeScript 通过npm&#xff08;Node.js包管理器&#xff09;安装Visual Studio的TypeScript插件:(Visual Studio 2017和Visual Studio 2015 Update 3默认包含了Ty…

长胜证券:资本市场的含义是什么?

本钱商场是指企业和政府通过证券生意来筹集资金并进行出资活动的商场。本钱商场通常被分为两个部分&#xff1a;初级商场和二级商场。初级商场是新证券发行的商场&#xff0c;而二级商场则是已发行证券的生意商场。本钱商场的展开程度是一个国家经济展开的重要目标之一。 从宏…

智能时代的蜕变:人工智能发展历程

原创 | 文 BFT机器人 前沿 2022年底&#xff0c;一款名为ChatGPT的人工智能聊天应用引起了巨大轰动&#xff0c;迅速火遍互联网。与传统的聊天机器人不同&#xff0c;ChatGPT更像是一位能够理解人类的虚拟智能助手&#xff0c;它具备智能推断和学习的能力&#xff0c;能够与用…

长胜证券:主板或以震荡整理为主 结构性行情持续

长胜证券指出&#xff0c;技术面看&#xff0c;沪指3150点上方谨慎看多&#xff0c;缩量横盘整理代表强势&#xff0c;向上打破需市场放量且权重配合&#xff0c;后市若打破并站稳3230点可视为强势回转行情开启&#xff0c;考虑到短期人民币弱势格局&#xff0c;主板或以震动整…

京东方只有一个“王东升”,但需要更多“陈炎顺”

文&#xff5c;新熔财经 作者&#xff5c;谢逊 20多年前&#xff0c;京东方手握30亿元的巨额资产&#xff0c;站在企业发展的十字路口踌躇。 有人建议&#xff0c;买望京的地&#xff0c;进军房地产。 如果真是这样干了&#xff0c;那么今天的京东方应该会是一个吃喝不愁、…

el-tree 懒加载数据,展开的节点与查询条件联动

目录 效果描述实现原理步骤1&#xff1a;el-tree设置node-key步骤2&#xff1a;懒加载时对数据进行处理&#xff0c;给整个树形数据添加唯一值步骤3&#xff1a;(联动) 点击左侧树形结构&#xff0c;右侧对应查询框自动赋值步骤4&#xff1a;(联动) 右侧查询条件选择好后&#…

AWS实例上本地部署ChatGLM2-6B

此篇博客主要介绍如何在AWS上创建带GPU的instance&#xff0c;并在instance上部署ChatGLM大模型。 AWS上申请带GPU的instance ChatGLM虽然也支持在CPU的instance上部署&#xff0c;但这里选择在GPU的instance上部署。所以&#xff0c;先在AWS上选择带GPU的instance。AWS上区分…