Android下VideoView的研究
16lz
2021-01-25
VideoView继承自SurfaceView,实现了MediaController.MediaPlayerControl的接口。在android系统中的包名为android.widget.VideoView。
VideoView的主要功能是显示一个指定的视频文件。VideoView可以从多个地方载入图片(比如资源或者content provider中)。
VideoView继承了Android.view.View类中的XML属性、常量、和field(我们常翻译成属性)。在VideoView下有三个构造方法:
VideoView(Context context)VideoView(Context context, AttributeSet attrs)VideoView(Context context, AttributeSet attrs, int defStyle)
VideoView的公有的方法有:
//这个方法是在API19中才加入的,一般情况下可以不考虑
void addSubtitleSource(InputStream is, MediaFormat format)//这个方法可以设置视频是否可以暂停。boolean canPause()
//这个方法设置视频是否可以后退boolean canSeekBackward()
//这个方法设置视频是否可以前进。boolean canSeekForward()
//通常是将这个View渲染到canvas上去。void draw(Canvas canvas)//这个方法如果错误的话会返回0.int getAudioSessionId()//获取缓冲百分比int getBufferPercentage()
//获取当前的位置int getCurrentPosition()
//获取播放视频的总时间int getDuration()
//判断视频是否处于播放状态boolean isPlaying()
void onInitializeAccessibilityEvent(AccessibilityEvent event)void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)boolean onKeyDown(int keyCode, KeyEvent event)boolean onTouchEvent(MotionEvent ev)boolean onTrackballEvent(MotionEvent ev)//停止时void pause()
//取得调整后的尺寸。如果measureSpec对象传入的模式是UNSPECIFIED那么返回的是desiredSize。如果measureSpec对象传入的模式是AT_MOST,返回的将
//是desiredSize和measureSpec对象的尺寸两者中最小的那个。如果measureSpec对象传入的模式是EXACTLY,那么返回的是measureSpec对象中的尺寸大小值。
int resolveAdjustedSize(int desiredSize, int measureSpec)//从暂停中恢复
void resume()
//跳转到void seekTo(int msec)
//设置MediaController,方便控制视频播放void setMediaController(MediaController controller)//媒体在播放完毕时的回调函数
void setOnCompletionListener(MediaPlayer.OnCompletionListener l)//发生错误时的回调函数void setOnErrorListener(MediaPlayer.OnErrorListener l)void setOnInfoListener(MediaPlayer.OnInfoListener l)//加载完毕后的回调函数void setOnPreparedListener(MediaPlayer.OnPreparedListener l)//设置视频播放路径void setVideoPath(String path)
//设置URIvoid setVideoURI(Uri uri)
//视频播放开始void start()
//停止回放void stopPlayback()
//挂起void suspend()
以下是VideoView的protected方法:
void onAttachedToWindow()
void onDetachedFromWindow()void onLayout(boolean changed, int left, int top, int right, int bottom)
void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
以上方法在重写VideoView时实现。
VideoView继承了以下类的方法:
android.view.SurfaceView android.view.View java.lang.Object//接口 android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback android.view.accessibility.AccessibilityEventSource android.widget.MediaController.MediaPlayerControl
更多相关文章
- Android(安卓)使用WebView 加载新闻详情,添加点击图片的js(使用的
- Android--H5交互简介
- Android(安卓)Dialog 生命周期
- Android框架保证View更新必须在主线程的解读
- Android(安卓)LiveData 使用
- Android(安卓)读取扫码枪的内容,可以读取条形码 ,二维码
- Android中的Parcelable序列化对象
- android中view事件传递
- android HorizontalScrollView实现滚动状态监听