只是上上手而已的例子。
package com.chenchen.app;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
public class MainActivity extends Activity {
private Context context;
private VideoView videoView;
/*视频文件分别放在三个文件夹中,需要到时候全部放入一个list中随机播放*/
private static final String MUSIC_PATH_1 = new String("/sdcard/qingbao/1/");
private static final String MUSIC_PATH_2 = new String("/sdcard/qingbao/2/");
private static final String MUSIC_PATH_3 = new String("/sdcard/qingbao/3/");
private List<String> mMusicList = new ArrayList<String>();
private int curIndex = 0;//
Random r=new Random();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=this;
listFiles();
}
/* 播放列表 */
private void listFiles() {
// 取得指定位置的文件设置显示到播放列表
File path_1 = new File(MUSIC_PATH_1);
File[] list = path_1.listFiles(new MusicFilter());
if (list.length > 0) {
for (File file : list) {
mMusicList.add(MUSIC_PATH_1+file.getName());
}
}
File path_2 = new File(MUSIC_PATH_2);
list = path_2.listFiles(new MusicFilter());
if (list.length > 0) {
for (File file : list) {
mMusicList.add(MUSIC_PATH_2+file.getName());
}
}
File path_3 = new File(MUSIC_PATH_3);
list = path_3.listFiles(new MusicFilter());
if (list.length > 0) {
for (File file : list) {
mMusicList.add(MUSIC_PATH_3+file.getName());
}
}
}
/* 过滤文件类型 */
class MusicFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
// 这里还可以设置其他格式的文件
return (name.endsWith(".mp4"));
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if(videoView!=null&&videoView.isPlaying()){
videoView.pause();
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
startVideo();
}
private void startVideo(){
videoView = (VideoView) findViewById(R.id.videoView);
MediaController mc = new MediaController(context);
videoView.setMediaController(mc);
// videoView.setVideoURI(Uri.parse("http://....h.3gp"));
videoView.requestFocus();
play();
videoView
.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
play();//播放完毕再继续下一首
}
});
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean one rror(MediaPlayer mp, int what, int extra) {
// TODO Auto-generated method stub
play();//播放出错再继续下一首
return true;
}
});
}
private void play(){
curIndex=r.nextInt(mMusicList.size());
videoView.setVideoPath(mMusicList.get(curIndex));
videoView.start();
}
private long waitTime = 2000;
private long touchTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& KeyEvent.KEYCODE_BACK == keyCode) {
long currentTime = System.currentTimeMillis();
if ((currentTime - touchTime) >= waitTime) {
Toast.makeText(context, "再按一次退出程序", Toast.LENGTH_SHORT).show();
touchTime = currentTime;
} else {
finish();
System.exit(0);
}
return true;
}else if(KeyEvent.KEYCODE_HOME == keyCode){
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onAttachedToWindow () {
/*本想屏蔽Home键,加上后播放器没画面,但有声音,why?*/
// this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
>
<VideoView
android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
<!--为屏蔽home健而加-->
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>