1,单例类的实现:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package tools; import android.annotation.SuppressLint; import android.content.Context; import android.media.AudioManager; import android.media.MediaPlayer; /** * 单例类之背景音乐播放 * * @author sl * */ public class BackgroundMusicPlay { private static BackgroundMusicPlay backgroundmusic;// 单例类对象 private MediaPlayer mp; // MediaPlayer引用 private AudioManager am; // AudioManager引用 private boolean pauseFlag = false; // 暂停标记,true暂停态,false非暂停态 /** * 私有的构造器 * * @param context */ private BackgroundMusicPlay(Context context) { mp = new MediaPlayer();// 得到mediaPlayer对象 am = (AudioManager) context.getSystemService(context.AUDIO_SERVICE); try { mp.setDataSource("/sdcard/newgalactic.mp3"); // 加载声音文件,进入Initialized状态。 } catch (Exception e) { e.printStackTrace(); } } /** * 得到单例类对象 * * @param context * @return */ public static BackgroundMusicPlay getBackgroundMusicPlay(Context context) { if (backgroundmusic == null) { backgroundmusic = new BackgroundMusicPlay(context); } return backgroundmusic; } @SuppressLint("SdCardPath") public void musicPlay() {// 播放音乐 try { mp.prepare(); // 进入prepared状态。 } catch (Exception e) { e.printStackTrace(); } mp.start(); // 播放音乐 } public void musicPause() {// 暂停播放 if (mp.isPlaying()) { // 如果是在播放态 mp.pause(); // 调用暂停方法 pauseFlag = true; // 设置暂停标记 } else if (pauseFlag) { mp.start(); // 播放音乐 pauseFlag = false; // 设置暂停标记 } } @SuppressLint("SdCardPath") public void musicStop() {// 停止播放 mp.stop(); // 停止播放 mp.reset(); // 重置状态到uninitialized态 try { mp.setDataSource("/sdcard/newgalactic.mp3"); // 加载声音,进入Initialized状态。 } catch (Exception e) { e.printStackTrace(); } try { mp.prepare(); // 进入prepared状态。 } catch (Exception e) { e.printStackTrace(); } } }
注意:在加载声音资源时(mp.setDataSource("/sdcard/newgalactic.mp3"); // 加载声音,进入Initialized状态。
),应先在/sdcard下放入资源文件。
方法:在eclipse中,选择模拟器,window --> show view --> other --> file explorer --> ok ,找到 mnt 目录下的sdcard ,选中,点击file explorer 右上角的 push a file onto the device 导入声音资源到sdcard中。
2,在activity中调用单例类:
复制代码
1
2
3
4
BackgroundMusicPlay bgmp=BackgroundMusicPlay.getBackgroundMusicPlay(this);//创建单例类对象 bgmp.musicPlay();//播放音乐 bgmp.musicStop();//停止播放 bgmp.musicPause();//暂停播放
转载于:https://my.oschina.net/u/2393951/blog/486176
最后
以上就是温柔彩虹最近收集整理的关于使用单例类进行背景音乐播放的全部内容,更多相关使用单例类进行背景音乐播放内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复