android videoview播放网络视频和sd卡中的视频

文章标签: android-videoview,android
2015-3-21 9:22:36     人阅读    

 

以前做了一个android app播放网络视频流,现在想改变一下代码,把从网络流改成播放本地视频流,视频的位置在sd卡中
以前的code:

Uri vidFile = Uri.parse("MY SITE HERE");
VideoView videoView = (VideoView) findViewById(R.id.VideoView);
videoView.setVideoURI(vidFile);
videoView.setMediaController(new MediaController(this));
videoView.start();

上面的代码是通过 android VideoView 播放网络视频....下面是如何播放本地sd卡视频的代码


需要把videoView.setVideoURI(vidFile); 替换成 videoView.setVideoPath(path);
sd卡路径可以使用 /sdcard/songname 格式
下面是具体的代码


 

public class VideoViewActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    
}*/

public class MainActivity extends Activity {

 private VideoView videoView;
 private Button btnHide, btnShow;
 MediaController mediaController;

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  getWindow().setFormat(PixelFormat.TRANSLUCENT);
  setContentView(R.layout.activity_main);

  videoView = (VideoView) this.findViewById(R.id.video);
  btnShow = (Button) this.findViewById(R.id.btnShow);
  btnHide = (Button) this.findViewById(R.id.btnHide);

  // 使用这种方式创建MediaController将不会显示“快进”和“快退”两个按钮
  // mediaController = new MediaController(this,false);

  mediaController = new MediaController(this);

  //File videoFile = new File("/mnt/sdcard/movie222.3gp");
  File videoFile = new File("/mnt/sdcard/abc.3gp");

  // 先判断这个文件是否存在
  if (videoFile.exists()) {
   System.out.println("文件存在");

   videoView.setVideoPath(videoFile.getAbsolutePath());
   System.out.println(videoFile.getAbsolutePath());
   // 设置VideView与MediaController建立关联
   videoView.setMediaController(mediaController);
   // 设置MediaController与VideView建立关联
   mediaController.setMediaPlayer(videoView);

   // 让VideoView获取焦点
   videoView.requestFocus();
   // 开始播放
   videoView.start();
  } else {
   Toast.makeText(this, "文件不存在", Toast.LENGTH_LONG).show();
  }

  btnShow.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    if (mediaController != null) {
     // 使用0的话就一直显示直到调用hide()
     mediaController.show(0);
    }

   }
  });

  btnHide.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    if (mediaController != null) {
     
     mediaController.hide();
    }

   }
  });
 }
}

开发总结:android VideoView 播放视频具体步骤如下:
1,配置文件中配置videoView
2,android activity代码中导入 MediaController 作为进度条控制
3,调用setVideoPath播放视频,需要把视频的具体路径传过去
4,关联videoView和MediaController,如
    videoView.setMediaController(mediaController);
    mediaController.setMediaPlayer(videoView);
   关联之后才能通过进度条进行控制前进后退
5,调用 videoView.start(); 播放视频,调用stop方法暂停播放


原文地址:http://www.itmmd.com/201503/664.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

  上一篇
下一篇  Android. 根据图片的资源ID获得图片的高度和宽度
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!