使用单例类进行背景音乐播放
2015-07-31 00:00
316 查看
摘要: 通过单例类进行音乐播放
1,单例类的实现:
注意:在加载声音资源时(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,单例类的实现:
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中调用单例类:
BackgroundMusicPlay bgmp=BackgroundMusicPlay.getBackgroundMusicPlay(this);//创建单例类对象 bgmp.musicPlay();//播放音乐 bgmp.musicStop();//停止播放 bgmp.musicPause();//暂停播放
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories