只是上上手而已的例子。
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 onError(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"/>