布局文件

<?xml version="1.0" encoding="utf-8"?>
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
   android:layout_height="fill_parent" />
   android:layout_width="fill_parent" android:clickable="true"
  android:focusableInTouchMode="true" android:layout_height="fill_parent">

 

类文件

package com.cgw;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoViewDemo extends Activity implements OnErrorListener,OnCompletionListener{
 private VideoView mVideoView;
 private Uri mUri;
 private int mPositionWhenPaused = -1;
 private MediaController mMediaController;//视频的控制条 如果不想要就不用设置。
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  // 全屏模式
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
  this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
  setContentView(R.layout.main);
  mVideoView = (VideoView)findViewById(R.id.videoview);
  mVideoView.setOnCompletionListener(this);
  mVideoView.setOnErrorListener(this);
  //文件路径
  mUri = Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.movie);//mp4格式的文件也一样可以播放。
//  System.out.println(mUri.getPath());
//  mMediaController = new MediaController(this);
  //设置MediaController
//  mVideoView.setMediaController(mMediaController);
 }

 //监听MediaPlayer上报的错误信息
 @Override
 public boolean onError(MediaPlayer mp, int what, int extra) {
  // TODO Auto-generated method stub
  return false;
 }

 //Video播完的时候得到通知
 @Override
 public void onCompletion(MediaPlayer mp) {
  this.finish();
 }

 //开始
 public void onStart() {
  // Play Video
  mVideoView.setVideoURI(mUri);
  
  mVideoView.requestFocus();
  mVideoView.start();

  super.onStart();
 }
 public void onPause() {
  mPositionWhenPaused = mVideoView.getCurrentPosition();
  mVideoView.stopPlayback();
  super.onPause();
 }
 public void onResume() {
  // Resume video player
  if(mPositionWhenPaused >= 0) {
   mVideoView.seekTo(mPositionWhenPaused);
   mPositionWhenPaused = -1;
  }
  super.onResume();
 }
}

 

如果想简单的播放视频文件,用上面的代码就可以了,我要说的是在使用过程中遇到的问题!

1、当布局文件中的SurfaceView和VideoView这两个控件的顺序颠倒以后就会出现看不到视频的问题,或者将SurfaceView设置为不可见。如果你先用了VideoView 然后又要用SurfaceView ,那么只要将VideoView隐藏就可以了,否则在SurfaceView上画的东西是看不到的。

2、 Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.movie);//只能获得res下的文件。如果哪位大侠知道如何获得assets的Uri 请留言 谢谢。

更多相关文章

  1. C ++头文件的十大错误,如何解决这些问题
  2. 自定义数据适配器
  3. Android(安卓)仿京东分类页面
  4. Android之ListView优化
  5. android notification应用
  6. Android(安卓)UI界面之TableLayout
  7. Android(安卓)围绕中心旋转一个ImageView动画
  8. Android文件简单读写操作
  9. 一个旋转layout布局文件

随机推荐

  1. Android中关于Audio库的知识
  2. android实现点击空白处,软键盘消失事件
  3. Android进程间通信(IPC)
  4. 2011.07.01——— android GridView 长按
  5. Android - ToDoList 详解
  6. Android布局动画之animateLayoutChanges
  7. Android(安卓)自定义Application
  8. Android(安卓)SlidingMenu实现沉浸式状态
  9. Android Java basic knowledge ---AIDL3
  10. Android studio NDK开发