VideoView简单视频播放

来源:互联网 发布:java web教程 编辑:程序博客网 时间:2024/06/05 06:10
只是上上手而已的例子。

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();@Overridepublic 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"));}}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();if(videoView!=null&&videoView.isPlaying()){videoView.pause();}}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.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() {@Overridepublic void onCompletion(MediaPlayer mp) {// TODO Auto-generated method stubplay();//播放完毕再继续下一首}});videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {@Overridepublic boolean onError(MediaPlayer mp, int what, int extra) {// TODO Auto-generated method stubplay();//播放出错再继续下一首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;@Overridepublic 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"/>
0 0
原创粉丝点击