一般的Android应用程序的音乐可以分为背景音乐和点击各种控件时的音效,前者一般为比较大的音乐文件,后者一般为比较小的音乐。在Android中一般用MediaPlayer类处理比较大的音频文件,用SoundPool类处理比较短促的音频文件。
因此,现设计一音乐播放工具类如下:
MusicPlayer
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.SoundPool;
import com.ruanko.shengji4Android.R;
import com.ruanko.shengji4Android.model.SysSetting;
public class MusicPlayer implements MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {
private Context context;
private MediaPlayer bgPlayer; //播放背景音乐的播放器
private SoundPool actionMusicPlayer; //播放音效的播放器
private int source_da,source_givecard,source_start,source_win,source_calllord; //各种音效的source
public MusicPlayer(Context context) { //初始化
this.context = context;
this.actionMusicPlayer = new SoundPool(10, AudioManager.STREAM_SYSTEM,5); //这里指定声音池的最大音频流数目为10,声音品质为5大家可以自己测试感受下效果
this.source_da = actionMusicPlayer.load(context, R.raw.da, 0);
this.source_givecard = actionMusicPlayer.load(context, R.raw.givecard, 0);
this.source_start = actionMusicPlayer.load(context, R.raw.start, 0);
this.source_win = actionMusicPlayer.load(context, R.raw.win, 0);
this.source_calllord = actionMusicPlayer.load(context, R.raw.calllord, 0);
}
public void onCompletion(MediaPlayer mp) { //音频文件播放完成时自动调用
}
public boolean onError(MediaPlayer mp, int what, int extra) { //音频文件播放发生错误时自动调用
return false;
}
public void playBgSound(int paramInt) { //播放背景音乐,paramInt为音频文件ID
if(!SysSetting.getInstance(context).isBgSound()) { //SysSetting为一个单例类,是我自己定义的,用于保存本应用程序相关设置,isBgSound()为得到是否开启背景音乐设置
return;
}
stopSound(bgPlayer);
try {
MediaPlayer mediaPlayer = MediaPlayer.create(context, paramInt);
bgPlayer = mediaPlayer;
bgPlayer.setOnCompletionListener(this);
bgPlayer.setLooping(true); //设置是否循环,一般背景音乐都设为true
bgPlayer.start();
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
public MediaPlayer getBackGroundPlayer() {
return this.bgPlayer;
}
public void stopBgSound() { //停止背景音乐的播放
if(bgPlayer == null)
return;
if(bgPlayer.isPlaying())
bgPlayer.stop();
bgPlayer.release();
bgPlayer = null;
}
private void playSound(int source) { //如果系统设置中开启了音效,则播放相关的音频文件
if(SysSetting.getInstance(context).isEffectSound()) {
actionMusicPlayer.play(source, 1, 1, 0, 0, 1);
}
}
public void playHitCardSound() {
playSound(source_da);
}
public void playGiveCardSound() {
playSound(source_givecard);
}
public void playStartSound() {
playSound(source_start);
}
public void playWinSound() {
playSound(source_win);
}
public void playCalllordSound() {
playSound(source_calllord);
}
}
在activity中怎样使用这个工具类呢?播放背景音乐可能我们一般都想到的是service,但是service对背景音乐的控制比较难,尤其是,在不同场景,需要不时变换背景音乐的情况下,因此,可以考虑自己定义一个activity,继承Activity,在其中定义一个静态的成员变量
public static MusicPlayer musicPlayer;
并在这个Activity的onCreate方法中初始化该musicPlayer
if(musicPlayer == null) {
SysSetting.getInstance(getApplicationContext()).load(); //加载系统设置,SysSetting为我自己定义的一个类,由于代码较长,就不给出了
musicPlayer = new MusicPlayer(getApplicationContext());
musicPlayer.playBgSound(R.raw.welcome); //播放背景音乐
}
然后,再将所有的Activity继承于这个自己定义的Activity即可。
分享到:
相关推荐
音乐播放工具类。
本项目是一个基于Android Studio(AS)的音乐播放器,提供了音乐播放页面,支持本地音乐播放和网络音乐搜索功能。下面我们将深入探讨这个项目中的关键知识点。 1. **Android Studio开发环境**:Android Studio是...
通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...
在Android应用开发中,创建一个能够播放本地音乐的应用是一个常见的需求。这个项目是基于Android Studio构建的,专注于实现播放和暂停本地音乐的功能。在描述中提到,该项目在Android API Level 2.3.2(Gingerbread...
以上就是基于Android Studio开发手机MP3音乐播放器所涉及的关键技术点,每个部分都需要深入理解和实践,以创建一个功能完整、用户体验良好的音乐播放应用。通过学习和实现这样的项目,开发者可以提升自己在Android...
在这个场景中,"android 后台音乐播放器"项目可能是一个实现能够持续播放音乐,即使用户离开应用或者屏幕关闭的解决方案。接下来,我们将深入探讨涉及到的主要知识点。 1. **Activity**:在Android中,Activity是...
本项目“基于Eclipse的Android音乐播放器”提供了一个完整的示例,展示了如何在Eclipse中构建一个功能完备的音乐播放应用。 1. **Android SDK和Eclipse集成** 在开始开发之前,开发者需要安装Android SDK并配置...
总的来说,开发一个像"MyMusic"这样的音乐播放器需要掌握Android应用的基本架构,以及与媒体播放、文件操作和用户界面设计相关的技术。通过不断学习和实践,开发者可以创建出功能丰富的音乐播放器应用,为用户提供...
【Android Studio开发的音乐播放器】是一个基于Android Studio平台创建的简单音乐播放应用程序。这个项目展示了如何在Android环境中实现音乐播放功能,尽管它的界面设计还有待改进,但基本的音乐播放控制已经完成,...
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 ...然后新建一个类MusicService继承Service,在类中定义一个MyB
在Android应用开发中,创建一个音乐播放器是一项常见的任务,尤其对于初学者来说,它提供了一个很好的机会来熟悉Android平台的基础知识和多媒体处理。这个项目,"android实战 音乐播放器(android studio源程序工程...
【Android音乐播放软件开发详解】 在移动设备领域,Android操作系统占据着主导地位,因此基于Android...对于初学者来说,这是一个很好的起点,而对于有经验的开发者,它则提供了深入研究Android音乐播放功能的机会。
综上所述,创建一个仿网易云界面的Android音乐播放器涉及了Android UI设计、多媒体播放、动画效果、事件处理、服务组件、权限管理和测试等多个方面。通过不断学习和实践,开发者可以掌握这些技能,打造出自己的个性...
本文将详细解析标题所提及的“Android-一个可以快速搜索绑定连接打开和关闭音频通道的工具类”,并围绕这个主题展开讨论。 首先,我们需要理解Android中的音频框架。Android的音频系统主要由MediaServer服务、Audio...
为了让用户知道音乐是否正在播放,可以在点击ImageView时更新其图像资源,例如,显示一个播放图标或暂停图标。 10. **测试与调试** 利用Android Studio的模拟器或连接的物理设备进行测试,确保播放、暂停和进度...
本项目"Android音乐播放器(Android Studio)"就是这样一个实例,旨在帮助开发者掌握如何在Android平台上创建一个功能完备的音乐应用。 首先,我们来看一下主要的功能实现: 1. **播放与暂停**:这是音乐播放器的...
开发者需要利用Android的MediaPlayer类或者ExoPlayer库来实现音乐的播放、暂停、停止、下一首、上一首等功能。这需要理解音频流的处理、播放状态的管理以及与UI的同步更新。 在数据管理方面,项目可能涉及到本地...
这个“Android音乐跳动振幅实用Demo”就是这样一个实例,它展示了如何获取音乐的频率振幅并利用这些信息来动态改变UI元素的表现。通过分析描述和标签,我们可以深入探讨以下几个关键知识点: 1. **MediaPlayer类**...
本源码提供了一个集成这两项功能的示例,不仅能够展示如何播放本地音乐文件,还能展示如何在Android应用中嵌入网页浏览器组件。对于初学者来说,这是一个很好的学习起点,可以帮助理解Android多媒体处理和UI交互的...
在本项目中,我们主要探讨如何使用Android Studio开发一个本地音乐播放器,专注于安卓平台的Java编程技术。这个音乐播放器能够播放手机SD卡上的音乐,并提供了常见的播放控制功能,如开始、暂停、停止、播放、上一曲...