MediaPlayer:延迟长且占用资源多;不支持同时播放多个音频
soundPool:延迟短,且占用资源少,支持多个音频同时播放,但是只能播放短促的音频,如果过长将不能全部播放完毕。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:id="@+id/relativelayout"android:layout_height="match_parent"tools:context=".MainActivity"><ListView android:layout_width="match_parent" android:layout_height="wrap_content"android:id="@+id/listView"android:entries="@array/bellname"/></RelativeLayout>

数组资源:

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="bellname"><item>111111111111</item><item>222222222222</item><item>333333333333</item><item>444444444444</item><item>5555555555</item><item>6666666666</item><item>7777777777</item><item>88888888888</item></string-array>
</resources>

main:

package com.example.soundpool;import android.media.AudioAttributes;
import android.media.SoundPool;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.RelativeLayout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;import java.util.HashMap;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView listView=findViewById(R.id.listView);AudioAttributes audioAttributes=new AudioAttributes.Builder()//设置音效属性.setUsage(AudioAttributes.USAGE_MEDIA)//设置音效的使用场景.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)//设置音效类型.build();final SoundPool soundPool=new SoundPool.Builder().setAudioAttributes(audioAttributes)//设置音效池的属性.setMaxStreams(10)//设置最多可容纳10个音频流.build();//将要播放的音频保存到hashmap对象中final HashMap<Integer,Integer> soundmap=new HashMap<>();soundmap.put(0,soundPool.load(this,R.raw.music,1));soundmap.put(1,soundPool.load(this,R.raw.music,1));soundmap.put(2,soundPool.load(this,R.raw.music,1));soundmap.put(3,soundPool.load(this,R.raw.music,1));soundmap.put(4,soundPool.load(this,R.raw.music,1));soundmap.put(5,soundPool.load(this,R.raw.music,1));soundmap.put(6,soundPool.load(this,R.raw.music,1));soundmap.put(7,soundPool.load(this,R.raw.music,1));//播放音频listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {soundPool.play(soundmap.get(position),1,1,0,0,1);}});}
}

音频soundpool相关推荐

  1. Android SoundPool播放音效详细步骤

    MediaPlayer虽然也能播放音频,但是它有资源占用量较高,延迟时间较长,不支持多个音频同时播放等缺点,这些缺点决定MediaPlayer在某些场合的使用情况不会很理想,例如在对时间精准度要求相对 ...

  2. 【Android】播放音频的几种方式介绍

    转自:u013366008的博客  https://blog.csdn.net/u013366008/article/details/76577372 Android中播放音乐的几种方式 前言 前几天 ...

  3. 安卓音视频整理(一)——音频模块

    这是关于安卓音视频的一个系列文章,大家可以从这里随意跳跃: 0.安卓音视频整理 1.安卓音视频整理(一)-- 音频模块 2.安卓音视频整理(二)-- 音视频编解码 3.安卓音视频整理(三)-- 图像模 ...

  4. Android中播放音乐的几种方式

    Android中播放音乐的几种方式 前言 前几天一直在研究RxJava2,也写了记录了几篇博客,但因为工作任务原因,需要研究音频相关的知识,暂时放下Rxjava,本文的demo中,MediaPalye ...

  5. android按钮点击音效

    1.基类抽取-(abstract)BaseActivity 2.单例模式-SoundPoolUtil. 3.SoundPool类Api运用 一.SoundPool: 1.构造函数:SoundPool ...

  6. 第十一章 多媒体应用开发(音视频播放)

    第十一章 多媒体应用开发 文章目录 第十一章 多媒体应用开发 第一节 音视频开发 1. MediaPlayer 类 1.1使用 MediaPlayer 播放音频 1.创建MediaPlayer对象,并 ...

  7. 9.Android学习之动画与多媒体(二)

    目录 9.动画与多媒体(二) 2.播放音频与视频 2-1.使用MediaPlayer类播放音频 2-2.使用SoundPool类播放音频 2-3.使用 VideoView组件播放视频 4.难点解答 4 ...

  8. java跨平台项目-lisa

    鉴于halloya没有功能,我打算启动一个新项目,其功能大致设想如下: 这是一个to do list,记录所要完成的事情. 可以跨平台运行,包括我的windows PC和塞班手机,不需要适应性开发.充 ...

  9. D1Android-钢琴模拟实现

    一.效果图: 二.操作步骤: java功能:①MainActivity.java package cn.itcast.e24_pianoplayer_application;import androi ...

  10. Android_弹钢琴(多媒体应用)

    Android_弹钢琴(多媒体应用) 所需文件 MainActivity package com.example.a524_11_playpiano;import android.media.Audi ...

最新文章

  1. fwt优化+树形DP HDU 5909
  2. 5G时代下,边缘计算产品的未来展望
  3. Java8新特性学习记录
  4. DAC7612的使用
  5. 信息系统项目管理师-知识管理知识点
  6. 【学习笔记】mybatis自定义插件案例代码
  7. linux 大数字 进制转换,Linux下用bc快速进行数字进制转换
  8. OpenJudge NOI 3.3 3340:RPN Calculator
  9. [iOS]通过xib定义Cell然后关联UICollectionView
  10. 功能机也不放过,谷歌或为 Chrome 提供非触控模式
  11. MATLAB分子微纳模拟,FDTD/MODE/DEVICE/Interconnect 微纳光电子模拟
  12. 空悬指针和野指针(Dangling pointer and wild pointer)
  13. 计算图像的均值、标准差
  14. win和linux双系统安装教程
  15. yii2设置session时间_YII2 设置session过期时间
  16. Java基础练习题(一维数组)
  17. PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.5
  18. 定义一个形状类(Shape)方法:计算周长,计算面积。子类: 矩形类、圆形类、三角形类...
  19. 连接tcp服务器出现的问题及解决方法
  20. 玩转华为ENSP模拟器系列 | 配置BGP EVPN

热门文章

  1. windows10桌面_32位windows10系统正式版推荐下载
  2. 2018.07.27
  3. ae怎么卸载已经安装的插件_ae红巨人插件卸载教程!
  4. QThread如何优雅实现暂停(挂起)功能
  5. 前端面试题(JavaScript基础篇)
  6. echarts 圆饼图空心中间加文字
  7. A星算法的理解和C#实现
  8. matlab画散点图
  9. 0.Dagger2.38.1源码解析-多种类型查询总结
  10. java开发html如何转换为word,Java怎么将html转换成word