在android有时候要播放一些本地或远程的视频,通常使用如下的代码:

mMediaPlayer = new MediaPlayer();mMediaPlayer.setDataSource(path);mMediaPlayer.setDisplay(holder);mMediaPlayer.prepareAsync();mMediaPlayer.setOnBufferingUpdateListener(this);mMediaPlayer.setOnCompletionListener(this);mMediaPlayer.setOnPreparedListener(this);mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

在OnPreparedListener的onPrepared(MediaPlayer)方法中回下如下的代码:

Log.d(TAG, "onPrepared called");mVideoWidth = mMediaPlayer.getVideoWidth();mVideoHeight = mMediaPlayer.getVideoHeight();Log.d(TAG, "***********mVideoWidth====="+mVideoWidth+"==mVideoHeight===" + mVideoHeight);if (mVideoWidth != 0 && mVideoHeight != 0) {holder.setFixedSize(mVideoWidth, mVideoHeight);mMediaPlayer.start();}//去掉buffer对话框bufferingDialog.dismiss();

但是有时间得到视频的宽度和高度为0但是视频还是可以播的,也就是视频中没有提供宽和高的数据,那么如果还使用上面的代码则视频不会播放可以在此处使用如下代码:

if (mVideoWidth != 0 && mVideoHeight != 0) {holder.setFixedSize(mVideoWidth, mVideoHeight);}mMediaPlayer.start();

也就是不管获取的长度是否大于0,都将player进行start

更多相关文章

  1. android中判断网络和WIFI是否连接
  2. 在Android中实现多线程同步
  3. 让EditText无法点击编辑和RatingBar无法点击
  4. android视频不播放的问题
  5. android 开发中常用颜色,以及一些颜色的代码
  6. 在Android中扫描wifi热点演示实例教程
  7. Android(安卓)代码设置Color的几种方式
  8. android单元测试用例和日志输出
  9. Android: How to Capture Screen in Gingerbread(2.3中实现截屏)

随机推荐

  1. 调用Android系统设置
  2. android.database.sqlite.SQLiteConstrai
  3. Android(安卓)内存溢出问题分析
  4. android 广播的总结
  5. Android开发者指南(12) —— Android(安
  6. Android(安卓)各版本关闭 Selinux 的方法
  7. Android入门级之WebView的使用
  8. Android中ProgressDialog的使用
  9. Android(安卓)onMeasure
  10. Android(安卓)View动画——自定义View动