`
chen592969029
  • 浏览: 109967 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Android下的一个音乐播放工具类

阅读更多
一般的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 AS开发的音乐播放器 有音乐播放页面 本地音乐 和网络搜索

    本项目是一个基于Android Studio(AS)的音乐播放器,提供了音乐播放页面,支持本地音乐播放和网络音乐搜索功能。下面我们将深入探讨这个项目中的关键知识点。 1. **Android Studio开发环境**:Android Studio是...

    基于Android Studio开发的音乐播放器APP源码Android 音乐播放器源码

    通过分析这个基于Android Studio的音乐播放器源码,开发者不仅可以学习到如何构建一个完整的音乐播放应用,还能深入理解Android平台上的多媒体处理、用户界面设计、服务组件使用等核心概念,为今后的Android开发打下...

    基于android_studio开发的播放本地音乐_内置简易的播放暂停

    在Android应用开发中,创建一个能够播放本地音乐的应用是一个常见的需求。这个项目是基于Android Studio构建的,专注于实现播放和暂停本地音乐的功能。在描述中提到,该项目在Android API Level 2.3.2(Gingerbread...

    android studio手机MP3音乐播放器

    以上就是基于Android Studio开发手机MP3音乐播放器所涉及的关键技术点,每个部分都需要深入理解和实践,以创建一个功能完整、用户体验良好的音乐播放应用。通过学习和实现这样的项目,开发者可以提升自己在Android...

    android 后台音乐播放器

    在这个场景中,"android 后台音乐播放器"项目可能是一个实现能够持续播放音乐,即使用户离开应用或者屏幕关闭的解决方案。接下来,我们将深入探讨涉及到的主要知识点。 1. **Activity**:在Android中,Activity是...

    基于Eclipse的Android音乐播放器.rar

    本项目“基于Eclipse的Android音乐播放器”提供了一个完整的示例,展示了如何在Eclipse中构建一个功能完备的音乐播放应用。 1. **Android SDK和Eclipse集成** 在开始开发之前,开发者需要安装Android SDK并配置...

    Android音乐播放器,可直接运行,可以读取本地音频文件,按不同列表显示,点击可以进入播放界面,可以进行播放、暂停等基本功能

    总的来说,开发一个像"MyMusic"这样的音乐播放器需要掌握Android应用的基本架构,以及与媒体播放、文件操作和用户界面设计相关的技术。通过不断学习和实践,开发者可以创建出功能丰富的音乐播放器应用,为用户提供...

    Android studio开发的音乐播放器.zip

    【Android Studio开发的音乐播放器】是一个基于Android Studio平台创建的简单音乐播放应用程序。这个项目展示了如何在Android环境中实现音乐播放功能,尽管它的界面设计还有待改进,但基本的音乐播放控制已经完成,...

    Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 ...然后新建一个类MusicService继承Service,在类中定义一个MyB

    android实战 音乐播放器(android studio源程序工程)

    在Android应用开发中,创建一个音乐播放器是一项常见的任务,尤其对于初学者来说,它提供了一个很好的机会来熟悉Android平台的基础知识和多媒体处理。这个项目,"android实战 音乐播放器(android studio源程序工程...

    基于android平台的音乐播放软件源码

    【Android音乐播放软件开发详解】 在移动设备领域,Android操作系统占据着主导地位,因此基于Android...对于初学者来说,这是一个很好的起点,而对于有经验的开发者,它则提供了深入研究Android音乐播放功能的机会。

    仿网易云界面的Android简单音乐播放器

    综上所述,创建一个仿网易云界面的Android音乐播放器涉及了Android UI设计、多媒体播放、动画效果、事件处理、服务组件、权限管理和测试等多个方面。通过不断学习和实践,开发者可以掌握这些技能,打造出自己的个性...

    Android-一个可以快速搜索绑定连接打开和关闭音频通道的工具类

    本文将详细解析标题所提及的“Android-一个可以快速搜索绑定连接打开和关闭音频通道的工具类”,并围绕这个主题展开讨论。 首先,我们需要理解Android中的音频框架。Android的音频系统主要由MediaServer服务、Audio...

    Android studio简单的音乐播放器.zip

    为了让用户知道音乐是否正在播放,可以在点击ImageView时更新其图像资源,例如,显示一个播放图标或暂停图标。 10. **测试与调试** 利用Android Studio的模拟器或连接的物理设备进行测试,确保播放、暂停和进度...

    Android音乐播放器(Android studio)

    本项目"Android音乐播放器(Android Studio)"就是这样一个实例,旨在帮助开发者掌握如何在Android平台上创建一个功能完备的音乐应用。 首先,我们来看一下主要的功能实现: 1. **播放与暂停**:这是音乐播放器的...

    Android课程设计源码仿QQ音乐播放器安卓版项目

    开发者需要利用Android的MediaPlayer类或者ExoPlayer库来实现音乐的播放、暂停、停止、下一首、上一首等功能。这需要理解音频流的处理、播放状态的管理以及与UI的同步更新。 在数据管理方面,项目可能涉及到本地...

    Android音乐跳动振幅实用Demo

    这个“Android音乐跳动振幅实用Demo”就是这样一个实例,它展示了如何获取音乐的频率振幅并利用这些信息来动态改变UI元素的表现。通过分析描述和标签,我们可以深入探讨以下几个关键知识点: 1. **MediaPlayer类**...

    android 网页浏览 音乐播放 源码

    本源码提供了一个集成这两项功能的示例,不仅能够展示如何播放本地音乐文件,还能展示如何在Android应用中嵌入网页浏览器组件。对于初学者来说,这是一个很好的学习起点,可以帮助理解Android多媒体处理和UI交互的...

    安卓开发本地音乐播放器(Android Studio).zip

    在本项目中,我们主要探讨如何使用Android Studio开发一个本地音乐播放器,专注于安卓平台的Java编程技术。这个音乐播放器能够播放手机SD卡上的音乐,并提供了常见的播放控制功能,如开始、暂停、停止、播放、上一曲...

Global site tag (gtag.js) - Google Analytics