最近公司想要做一个全景视频播放的功能,让我去研究一下。
我之前是没有使用过OpenGL相关的东西,并且考虑到项目进度的关系,最后是在网上搜了下相关的播放器。
其实OpenGL、OpenGL2 已经出来了很长一段时间了,但是网上能搜到的开源的播放器并不多。并且有的是伪360度,有的是性能优化不给力,有的是需要收费的……
经过对比,最后在GitHub上找到了一个还不错的播放器,当然这个也存在问题,而且貌似已经停止维护了。不过这不妨碍我使用它。
这里给一个原作者的代码地址:https://github.com/Martin20150405/Pano360
我是fork了源码,在这个基础上做了功能的修改和冗余文件的删减,保留了原来的使用方式。
实现功能
1、页面显示改成单屏。
2、保留了 全景和平面切换,截图功能,进度条相关功能,给切换、截图和标题等显示/隐藏按钮设置了配置方法。
3、修改了原库传入本地或者网络图片时(bitmap)时闪退的问题。
4、支持assets、raw、在线、本地 视频播放。
5、支持assets、在线、本地图片。
6、修改MimeType 类型,修改判断方式。
MineType
//在线
public static final int ONLINE_BITMAP = 10001;
public static final int ONLINE_VIDEO = 10002;
//本地
public static final int LOCAL_FILE_BITMAP = 10003;
public static final int LOCAL_FILE_VIDEO = 10004;
//系统内部
public static final int ASSETS_VIDEO=10005;
public static final int RAW_VIDEO=10006;
public static final int ASSETS_PICTURE=10007;
public static final int RAW_PICTURE=10008;
使用方式
allprojects{
repositories{
maven{url'https://jitpack.io'}
}
}
dependencies{
implementation'com.github.dzs-yaodi:VR360Demo:V1.3'
}
支持原有的一行代码调用方法(默认播放视频)
VR360ConfigBundle.newInstance().setFilePath(filePath).startEmbeddedActivity(context);
也支持自定义VR360ConfigBundle
VR360ConfigBundle configBundle = VR360ConfigBundle.newInstance()
.setFilePath(filePath)//视频/图片地址
.setMimeType(mimeType)//视频/图片来源
.setRemoveHotspot(true)//取消水印(默认true)
.setLive(false)//是否是直播,直播的时候隐藏底部进度条布局
.setShowVideoTitle(true)//是否显示标题
.setShowGyroBtn(true)//是否显示陀螺仪按钮
.setShowScreenshotBtn(true)//是否显示截图按钮
.setImageModeEnabled(imageMode);//true -> 图片,false -> 视频
最后给一个地址,需要的朋友可以去看看。