最近在做一个主播类的App,里面涉及到视频播放,之前没有接触过,在探索一阵后能够播放基本视频了。特此写下小记,方便日后查看。
首先,确定使用VideoView
进行视频播放。
步骤:
- 在界面布局文件中定义VideoView组件,或在程序中创建VideoView组件。
- 调用VideoView的如下两个方法来加载指定的视频:
- setVidePath(String path):加载path文件代表的视频
- setVideoURI(Uri uri):加载uri所对应的视频
- 调用VideoView的start()、stop()、psuse()等方法来控制视频的播放。
若要显示进度条,可结合MediaController
一起使用。
下面代码进行说明。
布局文件:
1 |
|
Activity:
1 | public class VideoPlayActivity extends AppCompatActivity { |
因为视频播放一般是全屏,直接使用系统的FullScreen会提示需要使用AppCompat主题,所以我给Activity设置了一个style。
1 | <style name="NoTitleFullscreen" parent="AppTheme"> |
1 | <activity |
实际效果:
因为是虚拟机,效果看起来可能不太满意,但是至少视频是能播放了。
后续可能还有屏幕视频适配的问题,现在就不多说了,后面解决了再来更新。
问题:VideoView加载资源需要一定的耗时, 会造成短暂的黑屏现象。
如何避免播放前的黑屏现象呢?可以给videoview设置加载的监听,在加载前给一个遮罩,等资源加载完成后隐藏遮罩。
1 | <FrameLayout |
设置监听:
1 | videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { |
今天是愚人节,节日快乐哦~