본문 바로가기
개발/안드로이드

[android]ViewoView에 thumbnail custom MediaController 붙이기

by darksilber 2011. 12. 13.
반응형
출처 - http://olpost.com/r/3053666
메인 화면
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
public class video extends Activity
{
    private String host = "http://192.168.0.17/~susemi99/movie/";
    private String file = "girl2.mp4";
    VideoView vv;
     
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        vv = (VideoView) findViewById(R.id.video3);
        String path = host + file;
         
        CustomMediaController mc = new CustomMediaController(this);
        vv.setMediaController(mc);
         
        vv.setVideoURI(Uri.parse(path));
         
        vv.requestFocus();
        vv.setOnPreparedListener(new OnPreparedListener()
        {
            @Override
            public void onPrepared(MediaPlayer mp)
            {
                mp.start();
            }
        });
    }
     
    // 썸네일을 클릭하면 여기로 온다.
    public void onClick(View view)
    {
        vv.seekTo(90000); // 1분30초부터 재생
    }
}

메인 화면에 비디오뷰와 미디어컨트롤러를 만든다.
사용 할 mp4는 모바일 웹 브라우저에서 스트리밍이 잘되는지 확인할 것
메인화면용 xml
1
2
3
4
5
6
7
8
9
10
11
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center">
    <VideoView
        android:id="@+id/video3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</LinearLayout>

커스텀 미디어플레이어
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
public class CustomMediaController extends MediaController
{
    Context _context;
     
    public CustomMediaController(Context context, boolean useFastForward)
    {
        super(context, useFastForward);
        _context = context;
    }
     
    public CustomMediaController(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        _context = context;
    }
     
    public CustomMediaController(Context context)
    {
        super(context);
        _context = context;
    }
     
    @Override
    public void setAnchorView(View view)
    {
        super.setAnchorView(view);
         
        /**
         * 0 : 컨트롤러 전체
         * 1 : 컨트롤 버튼
         * 2 : 탐색 바
         */
        LinearLayout layout = (LinearLayout) getChildAt(0);
        // LinearLayout button = (LinearLayout)layout.getChildAt(1);
        // LinearLayout seek = (LinearLayout)layout.getChildAt(2);
         
        LayoutInflater inf = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        LinearLayout linear = (LinearLayout) inf.inflate(R.layout.preview, null);
        layout.addView(linear, 0);
    }
}

동영상 재생 시, 동영상을 터치하면 나오는 컨트롤러에 썸네일 이미지를 붙인다.



커스텀 미디어플레이어에서 사용 할 xml
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
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center">
 
    <ImageView
        android:src="@drawable/i09_o01"
        android:id="@+id/imageView1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:onClick="onClick"/>
    <ImageView
        android:src="@drawable/i09_o02"
        android:id="@+id/imageView2"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <ImageView
        android:src="@drawable/i09_o03"
        android:id="@+id/imageView3"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <ImageView
        android:src="@drawable/i09_o04"
        android:id="@+id/imageView4"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <ImageView
        android:src="@drawable/i09_o05"
        android:id="@+id/imageView5"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
</LinearLayout>


DDMS에서 캡춰하니까 동영상은 안나오네 ;;;;;;


도움 받은 곳 : http://blog.naver.com/0677haha/60139090759 
반응형

댓글