前言
videoView 它是一个用于视频播放的类,对MediaPlayer, SurfaceView 进行再封装,由此开发者在安卓上播放视频更加简单。
VideoView 使用及方法
setVideoPath();
start(); //只需简单的call 这两支API 及可完成视频的起播,第一支指定要播放的文件,第二支播放
videoView 方法如下:
int getCurrentPosition():获取当前播放的位置。
int getDuration():获取当前播放视频的总长度。
isPlaying():当前VideoView是否在播放视频。
void pause():暂停
void seekTo(int msec):从第几毫秒开始播放。
void resume():重新播放。
void setVideoPath(String path):以文件路径的方式设置VideoView播放的视频源。
void setVideoURI(Uri uri):以Uri的方式设置VideoView播放的视频源,可以是网络Uri或本地Uri。
void start():开始播放。
void stopPlayback():停止播放。
setMediaController(MediaController controller):设置MediaController控制器。
setOnCompletionListener(MediaPlayer.onCompletionListener l):监听播放完成的事件。
setOnErrorListener(MediaPlayer.OnErrorListener l):监听播放发生错误时候的事件。
setOnPreparedListener(MediaPlayer.OnPreparedListener l)::监听视频装载完成的事件。
setVideoPath()
setVideoURI()
>openVideo()
>>release(false);//先call release,因为先前可能已经call start了
>>>mMediaPlayer.reset();
>>>mMediaPlayer.release();
>>mMediaPlayer = new MediaPlayer();
>>mMediaPlayer.setSubtitleAnchor(controller, this);
>>mMediaPlayer.setOnPreparedListener(mPreparedListener);
>>mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener);
>>mMediaPlayer.setOnCompletionListener(mCompletionListener);
>>mMediaPlayer.setOnErrorListener(mErrorListener);
>>mMediaPlayer.setOnInfoListener(mInfoListener);
>>mMediaPlayer.setOnBufferingUpdateListener(mBufferingUpdateListener);
>>mMediaPlayer.setDataSource(mContext, mUri, mHeaders);
>>mMediaPlayer.setDisplay(mSurfaceHolder);
>>mMediaPlayer.setAudioAttributes(mAudioAttributes);
>>mMediaPlayer.setScreenOnWhilePlaying(true);
>>mMediaPlayer.prepareAsync();
设置播放视频画面大小与比例:
法一:通过布局参数来设置
android.view.ViewGroup.LayoutParams lp = this.getLayoutParams();
lp.width = 1000; // required width
lp.height = 1000; // required height
this.setLayoutParams(lp);
法二:
setFixedSize(int width, int height) 与setSizeFromLayout()都是设置Surface 的大小的。
法三:通过MediaCodec
setVideoScalingMode(int mode)