android开发之背景音乐与音效

android开发之背景音乐与音效

一:添加背景音乐(MediaPlayer)

  • MediaPlayer class can be used to control playback of audio/video files and streams.MediaPlayer 类是用来控制音频和视频文件的播放;
  • 实例化MediaPlayer的方法:
  1. 直接new的方式:

    MediaPlayer mp = new MediaPlayer();

  2. 使用create的方式,如:

    MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了

  • 使用直接new的方式创建对象时,设置要播放的文件的方法:MediaPlayer要播放的文件主要包括3个来源:
  1. 用户在应用中事先自带的resource资源         例如:MediaPlayer.create(this, R.raw.test);
  2. 存储在SD卡或其他文件路径下的媒体文件     例如:myMediaplayer.setDataSource("/sdcard/test.mp3");
  3. 网络上的媒体文件        例如:myMediaplayer.setDataSource(http://music.baidu.com/song/490468);
  • 开始播放,停止播放,暂停播放的方法:注意在停止以及暂停播放后要选择一个合适的时间去重新开始也就是调用seekto()方法;
  • 实现监听播放完毕时的方法(这里使用了匿名内部类的方法),可以在播放完毕之后接着播放,也可以停止:
  • 必须释放音频,否则会报错:

二:音效(SoundPool)

  • SoundPool

    The SoundPool class manages and plays audio resources for applications.  SoundPool类是Android用于管理和播放应用程序的音频资源的类。一个SoundPool对象可以看作是一个可以从APK中导入资源或者从文件系统中载入文件的样本集合。它利用MediaPlayer服务为音频解码为一个原始16位PCM流。这个特性使得应用程序可以进行流压缩,而无须忍受在播放音频时解压所带来的CPU负载和时延。

  • SoundPool在载入声音文件过程中,使用了单独的线程,不会对视觉和UI性能产生影响。但SoundPool对载入声音文件大小有所限制
  • SoundPool与MediaPlayer相比,MediaPlayer存在着资源占用量较高、延迟时间较长、不支持多个音频同时播放等缺点,但SoundPool本身由于内存资源申请有严格限制,所以在开发过程中,建议尽量用SoundPool来播放一些较短的声音片段或者音效。
  • HashMap :HashMap是基于哈希表的Map接口的非同步实现,HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的功能是通过“键(key)”能够快速的找到“值”。

  • 实例化SoundPool,然后用HashMap来存储 播放的音乐id:(这里定义了一个SoundPool类的数组来存储音频文件)

  1. soundpool[0].load(this, R.raw.m2, 0)中第一个参数为Context,第2个参数即为资源文件,第3个为音乐的优先级;
  2. spMap.put(0, soundpool[0].load(this, R.raw.m2, 0))中第一个参数为key值,通过key来找到值,第二参数就是我们要存储的值;
  • 播放音效:
  1. am为创建声音管理AudioManager对象;
  • (这里主要是为正在写的2048做背景音乐和音效)实现这些之后,我们的app就可以有背景音乐和按钮音效了;
时间: 2024-10-07 08:16:53

android开发之背景音乐与音效的相关文章

【cocos2d-x游戏开发】背景音乐与音效

在游戏中,我们把音乐文件分为两类.一是背景音乐,二是音效.比如说,进入一个场景之中,会有背景音乐的声音,主角是做出动作时,会有音效的产生等等呐.. 然而背景音乐和音效音乐是不大相同的,一般来说,背景音乐是很长的,然而音效却是很短暂的,只有短短的几秒而已.所以说,背景音乐只能播放一首,然而,音效却可以同时播放多个,相信大家在玩游戏时也有所体会. 在cocos2d-x3.x中,我们可以十分方便的调用CocosDenshion音效引擎库.我们需要加载音频文件时,只需要把相关的头文件写进来就可以了. #

【项目实例】android开发游戏音效代码实例

//音效的音量 int streamVolume; //定义SoundPool 对象 private SoundPool soundPool; //定义HASH表 private HashMap<Integer, Integer> soundPoolMap; /*************************************************************** * Function: initSounds(); * Parameters: null * Returns

Swift - 给游戏添加背景音乐和音效(SpriteKit游戏开发)

游戏少不了背景音乐和音效.下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效. 声音管理类 SoundManager.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import SpriteKit //引入多媒体框架 import AVFoundation class SoundManager :SKNode{     //申明一个播放器

Cocos2d-JS 中游戏背景音乐与音效

游戏中音频的处理也是非常重要的,它分为背景音乐播放与音效播放. 背景音乐是长时间循环播放的,它会长时间占用较大的内存,背景音乐不能多个同时播放. 而音效是短的声音,它占用内存较小,音效能多个同时播放. 在Cocos2d-JS中提供了一个音频引擎-AudioEngine,通过引擎能够很好地控制游戏背景音乐与音效优化播放. Cocos2d-JS音频文件 音频多媒体文件主要是存放音频数据信息,音频文件在录制的过程中把声音信号通过音频编码变成音频数字信号保存到某种格式文件中.在播放过程中再对音频文件解码

Cocos2d-x实例:设置背景音乐与音效-设置场景实现

设置场景(Setting),Setting.h文件代码如下: [html] view plaincopy #ifndef __Setting_SCENE_H__ #define __Setting_SCENE_H__ #include "cocos2d.h" #include "SimpleAudioEngine.h" class Setting : public cocos2d::Layer { bool isEffect;                    

Cocos2d-x实例:设置背景音乐与音效- AppDelegate实现

为了进一步了解背景音乐和音效播放的,我们通过一个实例给大家介绍一下.如下图所示有两个场景:HelloWorld和Setting.在HelloWorld场景点击"游戏设置"菜单可以切换到Setting场景,在Setting场景中可以设置是否播放背景音乐和音效,设置完成后点击"OK"菜单可以返回到HelloWorld场景. 我们需要在AppDelegate中实现背景音乐播放暂停与继续函数,AppDelegate.h文件代码如下: #ifndef _APP_DELEGAT

Cocos2d-x实例:设置背景音乐与音效-HelloWorld场景实现

HelloWorld场景就是游戏中的主菜单场景.HelloWorld.h文件代码如下: #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" #include "SimpleAudioEngine.h" ① #include "SettingScene.h" class HelloWorld : public cocos2d::Layer { public: static cocos2d::Sce

Android开发四大组件概述

这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity具体解释 二.Service具体解释 三.Broadcast Receiver具体解释 四.Content Provider具体解释 外加一个重要组件 intent的具体解释.(主要来自于网络) 1.Activity 一个Activity通常展现为一个可视化的用户界面.比如,一个activity可能展现为一个用户能够选择的菜单项列表或者展现一些图片以及图 片的标题.一个消息服务应用程序可能包括一个显示联系人列表的ac

【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发VR实战]三.开发一个寻宝类VR游戏TreasureHunt VR即Virtual Reality虚拟现实.虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统它利用计算机生成一种模拟环境是一种多源信息融合的交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中. 那么,如何在Androi