- 浏览: 3572597 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
最近在做一个android版的连连看小游戏,希望在游戏播放背景音乐以及音效,为此搜寻了相关资料,经过学习研究得出最终解决方案:MediaPlayer+SoundPool。
MediaPlayer 用来控制游戏背景音乐的播放。
SoundPool
播放游戏音效,在初始化时加载游戏中用的所有音效文件,然后在游戏中进行播放,这样声音没有延迟,保证了游戏的性能。最初我还想让背景音乐也使用
SoundPool进行播放,可是经过测试,总是不成功,而且在初始化时会很慢,不知道是不是因为SoundPool不适用较大的音乐文件?
特
别要说的是,我在网上看到有些文章在讲解实现游戏背景音乐的播放时,说要使用service,本人很不赞同。可能是因为大多讲解service的教程都喜
欢用音乐播放器的例子,所以很多人产生了一个误解,认为只要是播放音乐就要用到service。其实人家所说是开发一个音乐播放器,这个播放器需要在系统
后台持续播放歌曲,而不管是用户停留在当前应用界面还是退出到了系统桌面,或是切换到了另一个应用的界面,总之意思是说要在系统后台进行播放,这时必须要
用到service。而一个游戏的背景音乐仅仅需要在游戏运行的时候播放,而在返回到桌面或者进入其他应用使游戏的activity变为不可见时,都应该
立即停止播放,根本没必要使用service。
有人可能说播放背景音乐应该在后台执行,不能影响程序的正常运行,这样说当然正确,但这仅需要开辟
一个单独的线程来专门播放音乐就可以了,而经我测试,MediaPlayer和SoundPool本身都已经实现了在独立的线程中播放音乐,所以综上所述
在游戏中播放背景音乐完全没必要使用service,那样完全是舍近求远,画蛇添足之举。只需直接使用MediaPlayer即可。请看我的代码:
这是一个实现游戏中播放声音的类,封装了MediaPlayer和SoundPool的使用细节,所有方法都定义为静态方法,在程序启动时先调用其init方法,然后在任何地方都可以非常方便的使用
package com.llkan.setup; import java.util.HashMap; import java.util.Map; import java.util.Random; import com.llkan.R; import android.content.Context; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.SoundPool; /** * 声音控制类 * @author wyf * */ public class SoundPlayer { private static MediaPlayer music; private static SoundPool soundPool; private static boolean musicSt = true ; // 音乐开关 private static boolean soundSt = true ; // 音效开关 private static Context context; private static final int [] musicId = {R.raw.bg,R.raw.bg1,R.raw.bg2,R.raw.bg3}; private static Map < Integer,Integer > soundMap; // 音效资源id与加载过后的音源id的映射关系表 /** * 初始化方法 * @param c */ public static void init(Context c) { context = c; initMusic(); initSound(); } // 初始化音效播放器 private static void initSound() { soundPool = new SoundPool( 10 ,AudioManager.STREAM_MUSIC, 100 ); soundMap = new HashMap < Integer,Integer > (); soundMap.put(R.raw.itemboom, soundPool.load(context, R.raw.itemboom, 1 )); soundMap.put(R.raw.sel, soundPool.load(context, R.raw.sel, 1 )); } // 初始化音乐播放器 private static void initMusic() { int r = new Random().nextInt(musicId.length); music = MediaPlayer.create(context,musicId[r]); music.setLooping( true ); } /** * 播放音效 * @param resId 音效资源id */ public static void playSound( int resId) { if (soundSt == false ) return ; Integer soundId = soundMap.get(resId); if (soundId != null ) soundPool.play(soundId, 1 , 1 , 1 , 0 , 1 ); } /** * 暂停音乐 */ public static void pauseMusic() { if (music.isPlaying()) music.pause(); } /** * 播放音乐 */ public static void startMusic() { if (musicSt) music.start(); } /** * 切换一首音乐并播放 */ public static void changeAndPlayMusic() { if (music != null ) music.release(); initMusic(); startMusic(); } /** * 获得音乐开关状态 * @return */ public static boolean isMusicSt() { return musicSt; } /** * 设置音乐开关 * @param musicSt */ public static void setMusicSt( boolean musicSt) { SoundPlayer.musicSt = musicSt; if (musicSt) music.start(); else music.stop(); } /** * 获得音效开关状态 * @return */ public static boolean isSoundSt() { return soundSt; } /** * 设置音效开关 * @param soundSt */ public static void setSoundSt( boolean soundSt) { SoundPlayer.soundSt = soundSt; } /** * 发出‘邦’的声音 */ public static void boom() { playSound(R.raw.itemboom); } }
评论
发表评论
-
android离线
2019-11-04 21:25 300https://www.jianshu.com/p/fdfc4 ... -
android 异步更新
2015-07-11 22:42 1503http://www.apkbus.com/forum.php ... -
仿微米
2015-06-26 10:22 0http://www.javaapk.com/source/4 ... -
仿微信
2015-06-26 10:21 1919http://www.javaapk.com/source/1 ... -
网易客户端
2015-06-26 10:20 1604http://www.javaapk.com/source/4 ... -
仿朋友圈
2015-06-26 10:18 1701http://www.javaapk.com/source/8 ... -
仿朋友圈
2015-06-26 10:13 1837http://www.eoeandroid.com/threa ... -
全国ABC查询
2015-06-26 10:07 1376IM 功能 环信云 信息统计 Umeng 分享Umeng 更新 ... -
android 判断网络
2015-06-25 16:00 1267http://www.cnblogs.com/renqingp ... -
android 多彩表格
2015-05-31 16:06 1478http://blog.csdn.net/conowen/ar ... -
android socket
2015-05-31 16:01 1647http://blog.csdn.net/conowen/ar ... -
微信播放语音3
2015-02-25 12:00 1435http://download.csdn.net/detail ... -
微信语音播放2
2015-02-25 11:57 1363http://download.csdn.net/detail ... -
微信语音播放
2015-02-25 11:56 1713http://www.apkbus.com/android-1 ... -
超强的资料整合
2015-01-05 11:04 1225http://zz563143188.iteye.com/bl ... -
最强开发资源平台大合集
2015-01-04 14:50 1886程序员代码应用开发平 ... -
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
2014-09-04 15:45 1380http://blog.csdn.net/vipzjyno1/ ... -
android应用推广
2014-09-03 23:25 1316应用推广不必愁,有米 ... -
android 图片异步加载
2014-09-03 16:47 1134http://www.csdn.net/article/201 ... -
android hander的使用
2014-09-02 23:46 1364http://www.cnblogs.com/xiaoran1 ...
相关推荐
这个"android背景音乐服务的程序"显然专注于利用`MediaPlayer`类来播放音乐。`MediaPlayer`是Android SDK提供的一种核心组件,用于处理音频和视频流。在本文中,我们将深入探讨如何使用`MediaPlayer`来实现后台音乐...
在Android应用开发中,为应用程序添加背景音乐是一个常见的需求,特别是在游戏或者音乐相关的应用中。本教程将深入探讨如何在Android中实现这一功能,重点聚焦于`PreferenceActivity`的使用以及如何选择SD卡上的音乐...
### Android游戏背景音乐实现详解 在进行Android游戏开发时,为游戏添加背景音乐可以显著提升玩家的游戏体验,使游戏更具吸引力。以下是从标题、描述、标签以及部分内容中提炼出的关键知识点,详细介绍如何在...
在Android开发中,实现背景音乐和音效是一个常见的需求,主要涉及到两个关键的类:`MediaPlayer`和`SoundPool`。这两个类都是Android系统提供的音频播放工具,但它们各自有其特性和适用场景。 首先,`MediaPlayer`...
在Android开发中,为应用程序添加背景音乐和音效是提升用户体验的重要一环。本文将详细介绍如何使用`MediaPlayer`和`SoundPool`这两个核心组件来实现这一功能。 首先,`MediaPlayer`是Android系统提供的一个用于...
在Android平台上实现背景音乐播放是开发游戏或应用时常见的需求,它可以为用户提供更沉浸式的体验。下面我们将深入探讨如何在Android中实现这一功能。 一、选择音频播放库 Android提供了多种方式来播放音频,最常见...
在Android开发中,实现背景音乐播放通常涉及到对多媒体处理、服务(Service)以及音频流的管理等技术。本篇文章将深入探讨如何利用Android的Service组件来实现在后台持续播放音乐的功能。 首先,我们要理解Service的...
4. **更改背景图片**:Android的UI设计灵活性很高,可以通过设置`ImageView`的`src`属性来更换背景图片。考虑到动态效果,可以使用`TransitionDrawable`实现平滑过渡。 接下来,深入到Android Studio的开发环境: ...
在Android平台上开发音乐应用时,实现音效和视觉反馈是提升用户体验的重要环节。"android 音乐律动频谱实现"这个项目就是针对这一需求,通过动态显示音乐频谱来增强用户对音频播放的感知。下面我们将深入探讨相关...
本文将深入探讨如何基于Android Studio开发一款名为“飞飞机大战”的小游戏,该游戏具备暂停、继续游戏以及开关背景音乐等实用功能。 首先,Android Studio为开发者提供了丰富的工具和资源,使得游戏开发变得相对...
【Android 图片音乐浏览器】是一款专门为Android平台设计的应用程序,旨在提供一个集成的环境,让用户能够轻松浏览和播放存储在SD卡上的图片和音乐。这款应用的独特之处在于它允许用户根据特定的文件夹结构来组织...
在本项目中,我们讨论的是一个经过修改的Android版2048游戏工程源码,它具有背景音乐和自动游戏的特色功能。这个源码基于极客学院提供的基础实现,适用于Android 4.0.3及以上版本。让我们深入探讨这个项目中的关键...
在Android开发中,实现背景音乐播放以及在网页中嵌入超链接是常见的需求,这涉及到多个组件和技术的综合运用。让我们深入探讨一下如何在Android应用中实现这些功能。 首先,我们要处理的是背景音乐播放。在Android...
这个"android源代码"示例专注于几个关键的Android开发技术:程序启动时播放背景音乐、自定义按钮、自定义对话框以及创建精美的用户界面。下面将详细介绍这些知识点。 1. **启动时播放背景音乐** 在Android应用启动...
【Android实现音乐播放器——课程设计报告,优秀课设】是一个关于移动应用开发的课程设计项目,主要目标是让学生熟练掌握Android程序开发的各种技术,包括基础的UI界面设计、数据存储、Activity、Service、SQLite...
以上就是使用Android Service实现背景音乐播放的基本流程。文件"05Service"可能包含了更详细的示例代码和实践教程,建议参考该文件以加深理解。通过学习和实践,开发者可以熟练掌握Service的使用,为用户提供流畅的...
总结来说,一个优秀的Android音乐播放器不仅需要具备网络获取资源的能力,还要注重界面美观,如背景虚化和圆形图片展示,更要在性能优化上下功夫,确保应用运行流畅,内存占用合理,网络请求高效。在开发过程中,...
在移动互联网发展的背景下,人们对音乐播放器的需求日益多样化,但市面上的音乐播放器 APP 却深陷商业的漩涡,难以满足用户的需求。此设计基于 Android 开源平台,使用 Java 语言开发,采用 Android Studio + Gradle...
### Android音乐播放器需求分析深度解析 #### 一、项目背景与目标 在3G技术的迅猛发展中,人们对音乐的追求日益高涨,市场上的音乐播放器虽多,但普遍存在操作复杂或音质不佳等问题,难以满足用户的高品质音乐体验...
此外,对于背景播放功能,源码可能会展示如何将服务(Service)与Activity相结合,使音乐在后台持续播放,即使用户离开应用程序也能保持播放状态。 至于视频播放,Android的VideoView或者ExoPlayer库可能被用到。...