Android中不用Service跨Avtivity仍然可以播放音乐的一个简单方法
16lz
2021-01-25
首先创建一个专门用来播放音乐文件(在这里只播放已经导入到res/raw/下的音频文件)的类
MusicPlayer
然后,新建一个Activity,我命名为MyActivity
MyActivity.java
在这里已经完成了大部分的工作,最后一步就是,让你所需要跨Activity播放背景音乐而不使用Service的Activity都继承与这个Activity就可以了。
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 { //利用音频文件创建一个MeidaPlayerMediaPlayer 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);if(musicPlayer == null) {SysSetting.getInstance(getApplicationContext()).load();musicPlayer = new MusicPlayer(getApplicationContext());musicPlayer.playBgSound(R.raw.welcome);}}}
在这里已经完成了大部分的工作,最后一步就是,让你所需要跨Activity播放背景音乐而不使用Service的Activity都继承与这个Activity就可以了。
更多相关文章
- Android多媒体学习五:利用Service实现背景音乐的播放
- RK3288 android 7.1.2屏蔽开机音频
- Android(安卓)打开PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDE
- android 服务的应用,在Activity中实现背景音乐播放
- android音频视频播放器
- 说说 Android(安卓)中如何操作音频与视频文件
- 录音类MediaRecorder的简单应用-录音频
- android 音乐播放器 本地音乐文件
- Lgame引擎搭建和第一个例子