VideoView分析

前言

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) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值