본문 바로가기

Android

안드로이드 기본 플레이어로 연속 재생기능 만들기


이번 프로젝트에서 사용한 연속플레이어 입니다.

플레이어에 종료 리스너를 등록하여 종료 직전에 남아있는 동영상을 체크하고 있으면 다음동영상을 재생하는 간단한 코드입니다.

해당 테스트코드를 가지고 기능을 좀더 추가하고 예외처리를 했는데요. 아래에 있는 코드만으로도 실행은 가능합니다.

import java.util.ArrayList;

import android.app.Activity;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.Bundle;

import android.widget.MediaController;

import android.widget.VideoView;


public class TestPlayerActivity extends Activity {

private static final String MOVIE_URL = "http://www.archive.org/download/Unexpect2001/Unexpect2001_512kb.mp4";

private ArrayList<String> array = new ArrayList<String>();

private int count;


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//주소를 어레이에 추가합니다.

            array.add("http://www.archive.org/download/Unexpect2001/Unexpect2001_512kb.mp4");

            array.add("http://www.archive.org/download/Unexpect2001/Unexpect2001_512kb.mp4");

            array.add("http://www.archive.org/download/Unexpect2001/Unexpect2001_512kb.mp4");

            count = 0;

            setContentView(R.layout.main);

            final VideoView videoView = (VideoView) findViewById(R.id.VideoView);

            MediaController mediaController = new MediaController(this);

            mediaController.setAnchorView(videoView);

            //비디오 uri등록 

            Uri video = Uri.parse(MOVIE_URL);

            videoView.setMediaController(mediaController);

            videoView.setVideoURI(video);

            videoView.requestFocus();

            //비디오 종료시 실행되는 리스너

           MediaPlayer.OnCompletionListener mComplete = new MediaPlayer.OnCompletionListener() {

                          @Override

                           public void onCompletion(MediaPlayer mp) {

                                       //재생할 비디오가 남아있을 경우
                                        if
(array.size() > count) {

                                            Uri video1 = Uri.parse(array.get(count).toString());

                                            count++;

                                            videoView.setVideoURI(video1);

                                            videoView.start();

                                            }

                                       // TODO Auto-generated method stub

                                   }

                         };

                    //리스너 등록 
                    videoView.setOnCompletionListener(mComplete);

                    //비디오 시작 
                    videoView.start();

             }

}

 
xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:id="@+id/LinearLayout01"

 android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"

 android:layout_width="fill_parent" android:orientation="vertical">


 <VideoView android:layout_height="fill_parent"

  android:layout_width="fill_parent" android:id="@+id/VideoView"></VideoView>

</LinearLayout>