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

Android中不用Service跨Avtivity仍然可以播放音乐的一个简单方法

阅读更多
首先创建一个专门用来播放音乐文件(在这里只播放已经导入到res/raw/下的音频文件)的类
MusicPlayer
public class MusicPlayer implements MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {;
	private MediaPlayer bgPlayer;
	
	public MusicPlayer(Context context) {
		this.context = context;
	}
        //当音乐播放完毕时
	public void onCompletion(MediaPlayer mp) {
		stopBgSound();
	}
        //当音乐播放发生错误时
	public boolean onError(MediaPlayer mp, int what, int extra) {
		stopBgSound();
		return false;
	}
	//播放背景音乐,传入的paramInt为res/raw/目录下的音频文件的引用
	public void playBgSound(int paramInt) {
		stopBgSound();
		
		try {
                        //利用音频文件创建一个MeidaPlayer
			MediaPlayer mediaPlayer = MediaPlayer.create(context, paramInt);
			bgPlayer = mediaPlayer;
			bgPlayer.setOnCompletionListener(this);
                        //设置是否循环播放
			bgPlayer.setLooping(true);
                        //开始播放
			bgPlayer.start();
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} 
	}
	//停止播放背景音乐
	public void stopBgSound() {
		if(bgPlayer == null) 
			return;
		if(bgPlayer.isPlaying())
			bgPlayer.stop();
		bgPlayer.release();
		bgPlayer = null;
	}
}



然后,新建一个Activity,我命名为MyActivity

MyActivity.java
public class MyActivity extends Activity {
	public static MusicPlayer musicPlayer;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		if(musicPlayer == null) {
			SysSetting.getInstance(getApplicationContext()).load();
			musicPlayer = new MusicPlayer(getApplicationContext());
			musicPlayer.playBgSound(R.raw.welcome);
		}
	}
}


在这里已经完成了大部分的工作,最后一步就是,让你所需要跨Activity播放背景音乐而不使用Service的Activity都继承与这个Activity就可以了。
分享到:
评论
2 楼 chen592969029 2010-11-25  
因为这个MusicPlayer是static的,只要都继承这个类,那么这个MusicPlayer就会一直存在,自然就可以一直播放了。
1 楼 wf2030 2010-11-17  
还是不太明白,为什么继承这个类就能不适用service跨Activity播放音乐了, 什么原理呢?

相关推荐

    android service 通过broadcast通知activity

    在Android中,Service是一种没有用户界面的组件,它可以在后台长时间运行,执行如播放音乐、网络通信等任务。创建一个Service通常需要重写`onStartCommand()`或`onBind()`方法。在本场景中,我们可能需要自定义一个...

    android Service 与Activity绑定

    Service是在Android系统中运行的后台组件,它可以没有用户界面,专注于执行长时间任务,如播放音乐、网络通信等。Service生命周期中的关键方法包括onCreate(), onStartCommand(), onBind(), onUnbind()和onDestroy...

    Android通过Service实现简单的音乐播放

    Started Service 是一种可以在后台长时间运行的服务,例如播放音乐、下载文件等。Bound Service 是一种可以与其他组件进行交互的服务,例如与 Activity 进行交互。 在本文中,我们使用 Started Service 来实现简单...

    Service与多个Activity交互

    1. **启动Service:** Activity可以通过startService()方法启动一个Service,Service会在后台持续运行,直到stopSelf()或stopService()被调用。 2. **绑定Service:** 使用bindService()方法,Activity可以与Service...

    android中activity和service的交互

    - 在Service中定义接口:首先,我们需要在Service类中创建一个Binder对象,它实现了`IBinder`接口,这样Activity就能通过这个接口调用Service的方法。 - 定义Service:在AndroidManifest.xml中声明Service,并在...

    Android使用Service播放音乐

    在Android中,`Service`是一种没有用户界面的组件,它通常用于执行长时间运行的任务,如播放音乐、下载数据等。`Service`有两种启动方式:通过`startService()`启动(异步执行,可以随时停止)和通过`bindService()`...

    Android 带进度条的使用Service实现的音乐播放器

    1. **Android Service**: Service是Android中的一个组件,它可以在后台长时间运行,不依赖于用户的交互。在音乐播放器中,Service用于在后台持续播放音乐,即使用户离开应用也能保持播放状态。 2. **MediaPlayer类*...

    Activity绑定Service(Kotlin)

    在Android应用开发中,Service是用于执行长时间运行操作的一个组件,而Activity是用户与应用交互的界面。将Activity与Service绑定是一种常见的通信方式,尤其在需要在后台运行任务且需要与用户界面保持交互时。本...

    Music_Player_Service.rar_ANDROID 播放_Service android_android serv

    本项目“Music Player Service”是针对Android平台设计的一个音乐播放器,它深入展示了如何利用Service组件来实现音乐播放功能。下面我们将详细探讨这个项目的知识点。 1. **Android Service**: - Service是...

    利用Service实现背景音乐的播放

    Service是Android四大组件之一,它在后台运行,不提供用户界面,可以用于执行长时间运行的任务,如播放音乐。由于Service运行于后台,即使用户离开应用,音乐也能继续播放。 要创建一个播放音乐的Service,你需要...

    用service播放音乐

    综上所述,通过创建一个Service并结合MediaPlayer,我们可以实现在Android设备后台播放音乐的功能。同时,通过暴露控制接口、使用Notification以及处理生命周期,我们可以提供良好的用户体验并遵循Android系统的最佳...

    本地service练习,简易音乐播放器

    本项目"本地Service练习,简易音乐播放器"旨在教你如何利用Service组件创建一个后台运行的音乐播放应用。让我们深入探讨一下这个练习涉及到的关键知识点。 1. **Android Service** - **Service的基本概念**:...

    基于Service的简易音乐播放器

    在Android开发中,创建一个基于Service的简易音乐播放器是一个常见的练习,可以帮助开发者理解服务(Service)的概念以及如何处理多媒体播放。在这个项目中,我们关注的是Android 4.1.2版本,它提供了对基本多媒体...

    初识 Service(三) 演示:Service给 Activity传递消息

    在Android应用开发中,`Service` 是一个非常重要的组件,它允许应用程序在后台长时间运行,即使用户界面(UI,如Activity)已经关闭。本篇我们将深入探讨如何在Service与Activity之间进行交互,尤其是Service如何向...

    service中启动activity

    在Android系统中,Service是一种没有用户界面的后台组件,它能长时间运行,执行特定的任务,例如播放音乐、处理网络请求等。然而,Service本身并不能直接启动一个Activity,因为它们属于不同的Android组件生命周期。...

    Android Service与Activity会话Demo

    在Android应用开发中,Service和Activity是两个非常重要的组件,它们分别用于后台长时间运行的任务和服务交互。本示例"Android Service与Activity会话Demo"旨在教你如何在Android Studio中实现Service与Activity之间...

    Service与Activity的通信

    通过实现自定义的`IBinder`接口,我们可以创建一个 Binder 对象,将它作为`Service`的一部分暴露出去,让`Activity`通过`bindService()`方法连接并调用`Service`的方法。 - **Handler**: Handler是Android消息处理...

    Service与Activity通信示例

    Activity可以通过startService()方法发送一个Intent到Service,Service在onStartCommand()方法中接收并处理Intent。这种方式适用于一次性的请求,如启动服务执行特定任务。 3. **Messenger**: 当需要在不同的线程...

    BindService绑定Service播放音乐

    在Android应用开发中,服务(Service)是一种用于执行长时间运行操作的组件,它不提供用户界面,但可以与其它组件(如Activity)交互。在本例中,我们关注的是通过`BindService`来绑定Service,以及如何利用...

    service与activity之间的通信

    在Android开发中,Service和Activity是两个非常重要的组件。Service主要负责在后台执行长时间运行的任务,而Activity则作为用户交互的界面。它们之间的通信是Android应用中常见的需求,例如播放音乐、下载数据等。本...

Global site tag (gtag.js) - Google Analytics