[OpenGL]从零开始写一个Android平台下的全景视频播放器——目录

article/2025/8/22 3:32:22

Github项目地址

为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过不会继续更新(保留在初始版本)

先放一张效果图:
播放界面

Youtube
优酷

前言

Android平台下的全景视频(360,Panorama video)播放器是去年年底留的坑,那个时候对于OpenGL ES了解有限,而且现有的开源代码也不多(那个时候UtoVR SDK也还没发布),现有的解决方案像PanoramaGL,Panframe之类的都不能满足要求(Panframe居然连个缩放都没有!!)
2016年是不是VR元年,我不知道。但是全景视频作为用户体验VR的最廉价途径,还是有不少公司纷纷上马的。
2016年初开源的MD360播放器是一个很好的工程实现,支持的功能也很丰富,适合实际应用(虽然也有一堆的坑没有填,还没有对应的文档)
之所以要写这个系列的博客,是因为我发现大部分想要做全景视频播放器的同学,或者一些现有的开源库(例如MD360)的使用者并不知道自己在干什么,该怎么做,或者说对于相关的概念一知半解。如果你对全景视频的播放原理或者对OpenGL ES感兴趣,这个系列的博客可能会对你有帮助。

由于项目的代码已经和教程有较大差异,只是想学习原理的可以在这里下载(CSDN)基础功能的示例代码。

请注意,本文假定读者有一定的Android开发基础(没有OpenGL ES的基础没有关系)

目录

  1. 从OpenGL ES 2.0开始
    1.1 OpenGL ES 2.0基础知识
    1.2 用OpenGL ES 2.0画一个三角形
    1.3 用OpenGL ES 2.0显示一张图片(上)
    1.4 用OpenGL ES 2.0显示一张图片(下)
  2. MediaPlayer播放视频
    2.1 使用GLSurfaceView和MediaPlayer播放一个平面视频(上)
    2.2 使用GLSurfaceView和MediaPlayer播放一个平面视频(中)
    2.3 使用GLSurfaceView和MediaPlayer播放一个平面视频(下)
  3. 全景视频的原理
    3.1 全景视频是如何实现的
    3.2 使用OpenGL ES 2.0绘制一个球
  4. 传感器事件以及坐标系
    4.1 传感器类型以及数据收集方法
    4.2 屏幕朝向,手机姿态的相关概念
    4.3 怎么都搞不清楚的几个坐标系
  5. 全景视频播放器制作
    5.1 使用OpenGL把全景视频贴到球上
    5.2 使用旋转矢量传感器改变球的朝向
    5.3 如何实现分屏效果
    5.4 响应用户的单指触控事件(平移)
    5.5 响应用户的多指触控事件(缩放)
    5.6 播放器的UI制作
    5.7 使用OpenGL ES接口保存屏幕截图
    5.8 使用MediaPlayer播放在线视频
  6. (未完待续)

Github项目地址


http://chatgpt.dhexx.cn/article/AHYZpuBl.shtml

相关文章

VR+全景播放器+头控讲解-06

VR全景播放器头控讲解-01-知识储备VR全景播放器头控讲解-02-创建球体VR全景播放器头控讲解-03-渲染视频VR全景播放器头控讲解-04-滑动手势VR全景播放器头控讲解-05-伸缩画面VR全景播放器头控讲解-06-头控实现VR全景播放器头控讲解-07-分屏技术 学习目标 掌握头控部分布局 如何检…

mxreality.js 免费开源的全景图/全景视频/VR 直播播放器介绍

[2018-10-20 重要更新]支持VR直播功能支持全景视频poster支持全景图和视频和场景之间随意切换全景模式切换回默认主视角播放列表 优点: 1、全景图支持全景模式和VR模式 2、支持网页端全景图补天功能,有效去除顶部和底部拼接留下的痕迹、做出真正完美的…

Unity3D制作极简版VR全景视频播放器

自从Unity5.6.4还是2017的版本开始,官方提供了兼容移动端和Windows端的视频播放器控件——Video Player,下面介绍如何使用这个控件,制作VR播放器。 1、新建空白场景,新建球体Sphere,Camera放置球心位置; …

基于threejs,完成一个简单的全景图播放器

直接上代码 CameraControls.js相机控制器 import * as THREE from three;function CameraControls(object, domElement, cb, update) {this.object object;this.domElement domElement ! undefined ? domElement : document;this.enabled true;this.lookSpeed 0.1;this.…

使用SceneKit编写VR全景播放器

最近用SceneKit做了全景看房的功能,现总结下如何实现的。 先看下最终的效果: gif1.gif VR图片全景播放器有以下功能: 360度手势滑动,缩放陀螺仪分屏(VR眼镜)热点hotpot头控/eyepick 手势滑动,缩放&#…

AVProVideo☀️五、播放全景视频

🎊 商务合作:https://skode.cn/file/businesscard/wechat.jpg 🎥 本文由 星河造梦坊公司官方 原创! 🏅 如果你有技术问题或项目开发,都可以加上方的联系方式,和我聊一聊你的故事🧡 文章目录 🟥 360球形全景视频🟧 360立方体全景视频🟨 360天空盒全景视频🟩…

[OpenGL]从零开始写一个Android平台下的全景视频播放器——3.1 全景视频是如何实现的

Github项目地址 为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过更新会慢一些 回到目录 恭喜Martin同学获得由CSDN颁发的“更新慢慢慢”荣誉称号 全景视频有很多种类,例如Sphere全景,Skybox(Cubemap&…

VR全景播放器 AvPro Video

最近项目需要,使用Unity开发VR全景播放器,包括PC端和VR一体机端(Android)。Unity5.6开始支持VideoPlayer,使用自带的VideoPlayer,很顺利把播放器完成了,使用了很长时间,一直没什么性…

FFmpeg 开发(07):FFmpeg + OpenGLES 实现 3D 全景播放器

该文章首发于微信公众号:字节流动 FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 FFm…

html全景直播播放器,Insta360 Player(全景视频播放器) V2.3.6 官方版

Insta360 Player是一款性能强劲且专业的全景视频播放器,它支持播放Insta360全景相机拍摄的全景视频和图片,并且支持本地视频的播放,操作非常的简单,有需要的用户可以下载来使用,此软件支持播放 Insta360全景相机产生的…

全景播放器,免安装支持全景视频

全景图片播放器,同时支持全景视频,可直接拖入页面查看。免安装全景播放器,文件不要大于20M Hpano 3D全景播放器是一款免安装可以720度互动浏览的全景图片查看器,通过拖球形全景图片或视频文件进行预览,720度的全方位图片查看器让你…

android 简单的exoplayer全景播放器

全景播放器网上一搜也是一堆一堆的,还有google推出的vrsdk,所以也没啥好说的,就简单记录一下 实现全景主要用到的还是opengles,只要用的开源播放器有setSurface(Surface surface)这个函数,就可以不改播放器源码实现 …

全景播放器

在github上发现的,绿色免安装,完全免费,只有一个界面三个按键,超级简单。里面带来几个全景视频和图片的demo,想体验全景的可以直接打开看看。想换片的时候按键盘的空格键既可以返回主界面。视角查看用鼠标左键点击拖动…

OpenGL ES_手把手教你打造VR全景播放器

OpenGL ES _ 入门_01OpenGL ES _ 入门_02OpenGL ES _ 入门_03OpenGL ES _ 入门_04OpenGL ES _ 入门_05OpenGL ES _ 入门练习_01OpenGL ES _ 入门练习_02OpenGL ES _ 入门练习_03OpenGL ES _ 入门练习_04OpenGL ES _ 入门练习_05OpenGL ES _ 入门练习_06OpenGL ES _ 着色器 _ 介…

播放全景视频【一】:用unity Video Player视频播放器来播放360全景视频

先上图为敬 本文测试环境: Win10 Unity 2020.3.40 Pico G2 4k VR一体机 一、使用Video Player心理负担比较小 使用Unity自带的【视频播放器(Video Player)】来播放360全景视频的【好处】: 1、控制逻辑与2D视频相同&#xff0c…

利用FFmpeg和OpenGL ES 实现 3D 全景播放器

前言 我们已经利用 FFmpeg OpenGLES OpenSLES 实现了一个多媒体播放器,本文将基于此播放器实现一个酷炫的 3D 全景播放器。 全景播放器原理 全景视频是由多台摄像机在一个位置同时向四面八方拍摄,最后经过后期拼接处理生成的。 用普通的多媒体播放器播…

航空客运订票系统(C语言,软件用的DEV)

这两天整理之前的作业代码,把自己一点一点敲出来的系统又看了一下,挑几个发出来供大家参考。想要源码、报告可以找我啦,代码的注释之前写的都是非常详细的! 但是不是无偿的啦(不坑,一杯奶茶喽,不…

数据结构_航空客运订票系统(C实现)

文章目录 总述代码粗糙版修理版 还可以修正的点:余票不足时仍然提示还剩下几张(而不是直接拒绝该用户的订票操作)对于购票者的id 不单单是说约定一个可以不重复的主键(命名规则),而且还要辅以必要的检查违约功能 总述 在这里插入代码片 1. 问题描述:(题…

航空机票订票系统

项目介绍 主要功能是使订票系统可以录入航班情况,查询某个航线的情况、办理订票、办理退票、修改航班信息、查询订票信息等。完成此系统,需要综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言)&…

【数据结构应用】航空客运订票系统

目录 前言 一、作业要求介绍 二、各个函数的实现 1.头文件总结需要的功能 (1)结构体的定义 (2)各个功能的函数 2.各个函数的具体实现 (1)初始化 (2)打印航班信息表 (4&…