티스토리 뷰


< 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

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
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
글 보관함