Android视频播放器
来源:互联网 发布:js如何获取父节点 编辑:程序博客网 时间:2024/03/29 23:07
实现:
可以调整大小位置,有进度条
没WIFI不会加载,有WIFI会自动加载 待完善~
播放器选择
一、MediaPlayer
原生的Android系统视频以及音频播放器
二、VideoView
将MediaPlayer,SurfaceView封装在一起的VideoView
以上两者都只是使用硬解播放,基本上只支持本地和HTTP协议的视频播放,扩展性都较差,只适合简单的视频播放需求
三、ExoPlayer
谷歌公司的开源了播放器项目,提供了更好的扩展性和定制能力,并加入了对DASH和HLS等直播协议的支持,但也只支持硬码,如果项目中只需要支持对H264格式的视频播放,以及流媒体协议比较常规(比如HTTP,HLS),基于ExoPlayer定制也是不错的选择
四、ijkplayer
Bilibili公司开源的播放器实现,整合了FFMpeg, ExoPlayer, MediaPlayer等多种实现,提供了类似于MediaPlayer的API,可以实现软硬解码自由切换,自定义TextureView实现,同时得益于FFMpeg的能力,也能支持多种流媒体协议(RTSP,RTMP,HLS等),多种视频编码格式(h264, mpeg4, mjpeg),具有很高的灵活性,可以定制实现自己特色的播放器(比如支持视频缩放,视频翻转等)
五 其他开源的组件
如Vitamio,VDPlayerSDK
视频播放的流程
常规的视频播放分为传输,解封装,解码,绘制四个步骤,以下按播放网站上(HTTP)的mp4文件为例:
VideoView的使用:
1 xml中
<VideoViewandroid:id="@+id/video_view"android:layout_width="match_parent"android:layout_height="match_parent" />
2 java中
private VideoView videoView;videoView=itemView.findViewById(R.id.video_view);//加载本地视频videoView.setVideoPath("");//加载网络视频videoView.setVideoURI(Uri.parse("http://t.cn/RYqnBvs"));//retrofitUtil.video_urls[0]videoView.start();
3 Manifest.xml中
<!-- 允许程序打开网络套接字 --> <uses-permission android:name="android.permission.INTERNET" />
4 添加控制器
可以实现播放,暂停,倒带快进,进度条移动等功能
MediaController controller = new MediaController (context);// VideoView绑定控制器videoView.setMediaController(controller);
参考文章:
https://appkfz.com/2017/08/27/ijkplayer-sutdy-1/
- Android 视频播放器
- android 视频播放器
- android视频播放器
- Android 视频播放器
- android 视频播放器
- android视频播放器
- Android视频播放器
- Android视频播放器
- Android--视频播放器
- Android 视频播放器
- android 视频播放器
- Android-视频播放器
- Android 视频播放器
- android视频播放器
- Android 视频播放器
- Android视频播放器
- Android视频播放器
- Android视频播放器
- 不忘初心,继续前进
- QLabel和QTimer之滚动字幕完善
- [博客搬迁]本博客搬迁至Hexo独立博客+Coding Pages
- mvc 利用form表单文件上传
- 简单bfs集锦
- Android视频播放器
- UE4蓝图节点翻译---Add Pawn Sensing Component
- 决策树算法简介
- 油腻代码大叔与蝴蝶效应
- Linux部署dubbo流程介绍
- 一个PHP文件搞定支付宝系列之手机网站支付(兼容微信浏览器)
- 58. Length of Last Word
- 7.3 计算两整数的最大值,
- Hadoop源码分析:FileSystem类