티스토리 뷰
< MediaPlayer LifeCycle >
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | /** * Created by AVG on 2016-05-15. * MediaPlayer */ public class cMediaManager { private static cMediaManager mInstance; private int mCurrentMd; // 재생되고 있는 Media ID private MediaPlayer mMedia; private HashMap mMediaMap; private Context mContext; public static cMediaManager getInstance() { if(mInstance == null) { mInstance = new cMediaManager(); } return mInstance; } public void init(Context _cont) { mMediaMap = new HashMap(); mContext = _cont; } public void addMedia(int _id, int _mdID) { mMedia = MediaPlayer.create(mContext, _mdID); mMedia.setLooping(true); mMediaMap.put(_id, mMedia); } public void setLooping(int _id, boolean _bEnable) { if (mMediaMap.get(_id) == null) return; mMedia = (MediaPlayer)mMediaMap.get(_id); mMedia.setLooping(_bEnable); } public void play(int _id) { if (mMediaMap.get(_id) == null) return; mMedia = (MediaPlayer)mMediaMap.get(_id); if (mMedia.isPlaying() == false) mMedia.start(); mCurrentMd = _id; } public void pause(int _id) { if (mMediaMap.get(_id) == null) return; mMedia = (MediaPlayer)mMediaMap.get(_id); if (mMedia.isPlaying() == true) mMedia.pause(); } public void stop(int _id) { if (mMediaMap.get(_id) == null) return; mMedia = (MediaPlayer)mMediaMap.get(_id); if (mMedia.isPlaying() == true) { /** Media를 정지시킨 다음, 다시 준비 시키고, 다음에 재생될 때 처음부터 재생될 수있도록 설정. */ mMedia.stop(); try { mMedia.prepare(); mMedia.seekTo(0); } catch (IOException e) { e.printStackTrace(); } } } public void autoPause() { // TODO:: 화면의 포커스를 잃으면 현재 재생중인 Media 일시 정지. this.pause(mCurrentMd); } public void autoResume() { // TODO:: 화면의 포커스를 잃었다가 다시 얻고 음악 실행. this.play(mCurrentMd); } public void stop() { // TODO:: 모든 MediaPlayer 멈춤. for (int i = 0; i < mMediaMap.size(); i++) { stop(i); } } } | cs |
http://developer.android.com/intl/ko/reference/android/media/MediaPlayer.html
댓글