`
1140566087
  • 浏览: 558333 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18509
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:313768
Group-logo
J2ME 基础学习课程集
浏览量:18680
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17547
社区版块
存档分类
最新评论

Android 之 使用SoundPool播放音频

阅读更多
SoundPool :音效池
1、Android 中除了提供MediaPlayer播放音效外,还提供了SoundPool播放音效;
特点:
* SoundPool 使用音效池的概念来管理多个短促的音效;
* cpu资源占用量低和反应延迟小;
* 支持自行设置的品质、音量、播放比率等参数;
* 异步线程,占用资源少,可以同时合成多种音效;
用途:一般用于实现游戏音效;
提示:用SoundPool 载入和播放多个音效时用OGG格式,否则某些型号的手机可能会出现杂音,重复播放等问题;
2、使用SoundPool播放音效的步骤:
* 获得对象;SoundPool soundPool = new SoundPool();
* 调用load()方法,从指定资源、文件中加载声音;建议用key-value保存,因为该方法返回的是:该音频在音效池中的位置;
* 调用play()播放声音;
3、使用案例如下:

java代码:
package com.example.multimediaapp_soundpool;

import java.util.HashMap;

import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button sound1,sound2,sound3;
	private HashMap<Integer,Integer> map;
	private SoundPool soundPool;
	public void init(){
		sound1 = (Button) findViewById(R.id.sound1);
		sound2 = (Button) findViewById(R.id.sound2);
		sound3 = (Button) findViewById(R.id.sound3);
	}
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		init();
		
		/* 获取SoundPool对象:参1:同时播放流的最大数量 ;  参2:流的类型,一般为:STREAM_MUSIC(具体在AudioManager类中列出) ; 参3:采样率转化质量,用0默认*/
		soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
		
		/* 加载文件 *//* 执行该方法返回的是该音频文件在音效池中的位置,用HashMap保存 */
		map.put(1, soundPool.load(this,R.raw.arrow , 1));
		map.put(2, soundPool.load(this, R.raw.bomb, 1));
		map.put(3, soundPool.load(this, R.raw.shot, 1));
		
	}
	
	/* 事件:启动音效 */
	OnClickListener listener = new OnClickListener() {
		
		public void onClick(View v) {
			Button btn = (Button)v;
			switch (btn.getId()) {
			case R.id.sound1:
				/*	@ soundID 音效池中的ID
				 *	@ leftVolume  左声道 :0.0-1.0
				 *  @ rightVolume 右声道 :0.0-1.0
				 *  @ priority  优先权   : 0 表示最低权限;
				 *  @ loop : 循环  0 == 不循环  -1==永远循环  other==循环指定次数
				 *  @ rate 比率 :playback 录音重放 rate : 0.5-2.0
				 * */
				soundPool.play(map.get(1), 1, 1, 1, 0, 1);
				break;
			case R.id.sound2:
				soundPool.play(map.get(2), 1, 1, 1, 0, 1);
				break;
			case R.id.sound3:
				soundPool.play(map.get(3), 1, 1, 1, 0, 1);
				break;
			default:
				break;
			}
		}
	};


}
分享到:
评论

相关推荐

    Android使用SoundPool实现播放音频

    "Android使用SoundPool实现播放音频" Android中使用SoundPool实现播放音频是一种常见的音频播放方式。SoundPool是一个音频管理器,主要用于播放短音频,例如游戏中的音效、提示音等。下面详细介绍了Android使用...

    使用 SoundPool 同时播放多个音频

    `SoundPool` 是Android系统提供的一个音频处理工具,它允许开发者高效地加载和播放小音频片段,并且支持多声道和动态调整音量。下面我们将深入探讨如何使用 `SoundPool` 实现同时播放多个音频。 首先,我们需要了解...

    Android多媒体功能开发-使用SoundPool播放音频的例子

    本教程将深入探讨如何使用`SoundPool`类来实现高效、灵活的音频播放。`SoundPool`是Android提供的一种轻量级的音频管理工具,特别适用于游戏开发或者需要快速响应的场景,因为它可以预先加载音频文件到内存,从而...

    Android下使用SoundPool的示例

    在Android平台上,`SoundPool`是一个非常实用的类,它允许开发者轻松地管理和播放短期音频效果。本示例将深入探讨如何在Android应用中使用`SoundPool`来实现音效的加载与播放,以提高用户体验。 `SoundPool`是...

    Android用SoundPool播放音效

    在Android开发中,SoundPool是用于播放短暂音频效果的一个高效工具,特别适合处理游戏或应用中的声音反馈。本文将深入探讨SoundPool的工作原理、使用方法以及如何在实际项目中实现音效播放。 ### 1. SoundPool概述 ...

    android 使用 SoundPool 播放音效

    `SoundPool`是Android系统提供的一个音频管理工具,它允许开发者快速播放短期的音频剪辑,如游戏中的按钮点击声或角色动作音效。`SoundPool`的特点在于它可以高效地管理和缓存多个小音频文件,确保在需要时能即时...

    Android多媒体应用使用SoundPool播放音频

    由于MediaPlayer占用资源较多,且不支持同时播放多个音频,所以Android还提供了另一个播放音频的类—–SoundPool。SoundPool即音频池,可以同时播放多个短小的音频,而且占用的资源较少。SoundPool适合在应用程序中...

    android soundpool播放音乐

    在Android平台上,声音的播放是通过多种方式实现的,其中之一就是使用`SoundPool`类。`SoundPool`是一个高效的声音管理器,适用于短小、重复的声音效果,如游戏中的音效。下面我们将深入探讨`SoundPool`的工作原理、...

    android 的摄像头 和soundPool播放声音实例

    本实例将探讨如何使用Android SDK中的相关组件来实现摄像头功能以及通过SoundPool播放声音。 1. 摄像头操作 在Android中,摄像头功能主要通过Camera类和Camera2 API来实现。Camera类是早期版本Android中的主要接口...

    Android soundpool播放音乐声音池应用举例.rar

    SoundPool类是Android提供的一个音频管理工具,特别适合于需要快速响应和重复播放短音频片段的应用场景。本示例将深入探讨如何利用SoundPool来播放音乐,并提供一个基础的实现案例。 首先,我们需要了解SoundPool的...

    Android使用SoundPool播放音效实例

    Android 使用 SoundPool 播放音效实例 Android 使用 SoundPool 播放音效实例主要为大家详细介绍了 Android 使用 SoundPool 播放音效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考...

    Android的SoundPool类使用与利弊

    综上所述,`SoundPool`作为Android平台上的音频播放类,虽然有一些限制和不足之处,但它的优点仍然使其成为许多开发者首选的音频播放工具之一。合理地利用`SoundPool`,可以在提高应用性能的同时,为用户提供更好的...

    Android应用源码之(SoundPool音效).zip

    在Android应用开发中,SoundPool是一个非常重要的音频管理类,用于播放小而短的声音效果,如游戏中的音效。这个源码压缩包“Android应用源码之(SoundPool音效).zip”提供了一个实例,帮助开发者深入理解如何在实际...

    Android中播放声音的两种方法MediaPlayer 和SoundPool

    在Android平台上,开发人员可以利用两种主要的工具来播放声音:`MediaPlayer`和`SoundPool`。它们各自具有不同的特点和适用场景,下面将详细解释这两种方法及其使用方法。 ## 1. MediaPlayer `MediaPlayer`是...

    Android频繁播放简短音频Deom

    综上所述,`Android频繁播放简短音频Demo`涉及到的关键技术包括`SoundPool`的使用、音频资源的管理和TTS技术。通过这些技术,开发者能够构建出一个响应迅速、性能良好的音频播放功能,提高用户的使用体验。在实践中...

    使用 SoundPool

    在Android平台上,`SoundPool` 是一个非常实用的类,用于播放小的音频剪辑,特别是在游戏开发中,它能够高效地管理和播放大量的短音频。`SoundPool` 的优势在于它可以预先加载音频到内存,从而实现快速响应的音频...

    Android应用源码之(SoundPool音效)-IT计算机-毕业设计.zip

    这个毕业设计项目专注于使用SoundPool来实现音效功能,帮助学生深入理解和掌握Android音频处理技术。以下是关于SoundPool及其在Android应用中使用的详细知识点: 1. **SoundPool的介绍**:SoundPool是Android系统...

    Soundpool音乐播放控制练习

    在Android开发中,`Soundpool`是一个非常实用的类,用于播放短小的音频剪辑,比如游戏中的音效或简单的背景音乐。`Soundpool`的优势在于它能快速响应,即使在低内存环境下也能高效地处理音频播放。下面将详细讲解`...

Global site tag (gtag.js) - Google Analytics