在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 代码设置Color的几种方式
  2. android studio 格式化代码时注解不换行
  3. android 使用Intent传递对象 Serializable 或者 Parcelabel 《第
  4. material design 的android开源代码整理
  5. Android Studio代码混淆,开启Proguard,稍微总结一下
  6. 实现简单的Android的播放视频功能

随机推荐

  1. Android Design Android 设计指南非官方
  2. -------------Android判断应用或Activity
  3. Android项目自动编译脚本记录
  4. v4包 fragment 报错:java.lang.IllegalSta
  5. 说说Android上的断点续传下载
  6. ANDROID STUDIO 中如何导入SnapHelp类与R
  7. Android应用程序键盘(Keyboard)消息处理机
  8. Android java.net.MalformedURLException
  9. Android开发之如何手写代码进行页面布局
  10. Android蓝牙简单开发