自由视角技术分享

举报
漫漫修行者 发表于 2020/03/21 19:00:05 2020/03/21
【摘要】 自由视角 —— 手机侧UI实现 上一篇博客中介绍了大屏STB侧自由视角UI的实现,这次来介绍一下手机侧的自由视角UI的实现首先我们来看一下手机和大屏之间的区别: 1. 手机是手势滑动,STB是遥控器按键控制 2. 网络状态,手机有蜂窝网和无线网,STB是无线网实现的相同点: 1. 拥有相同的参数:机位数和主机位 2. 都...

自由视角 —— 手机侧UI实现

 

上一篇博客中介绍了大屏STB侧自由视角UI的实现,这次来介绍一下手机侧的自由视角UI的实现

首先我们来看一下手机和大屏之间的区别:

    1.       手机是手势滑动,STB是遥控器按键控制

    2.       网络状态,手机有蜂窝网和无线网,STB是无线网

实现的相同点:

    1.       拥有相同的参数:机位数和主机位

    2.       都需要调用播放器旋转接口

 

针对以上相同点和不同点,我们来看手机侧自由视角的UI实现,

 

手机侧自由视角的方案:其实UI侧方案很简单,就是视频可以跟随手势的滑动而进行旋转,当然这个旋转是通过调用播放器API实现的,我们只需要调用播放器API,把初始机位和旋转机位传给播放器API,即可实现视频的旋转;和STB侧方案不一样的是,这里的旋转机位是通过计算手势滑动的角度大小计算得来的,在STB侧我们通过按键按下的时长计算,这里则是通过计算手指的初始位置和最后位置,计算一个旋转角度,

所以手机侧就需要知道这些机位覆盖的角度,如36个机位,覆盖360度,故可以得出计算公式为:旋转机位 = 旋转角度 / (覆盖角度/总机位);旋转所需要的时间目前在手机侧是根据测试经验值写死200ms,通过测试发现这个值在100-300ms直接最佳,故目前取值100ms,这样自由视角入参即计算完成。

 

下面解释一下自己的几点理解,不正确的地方或者有好的建议欢迎留言:

1.       旋转视角:上面说到是根据测试经验值写死100ms的,其实写死肯定是不好的,因为不论旋转多少角度都是100ms,显然不是很合理。那么这个值和什么有关呢?其实这个值根据测试发现和请求流的分片时长有关,一个流的分片时长大约是200ms,这个值只要是分片的时长的整数倍,发现旋转效果最佳。

2.       时延:手势滑动时延,因为要计算旋转角度只能等手势滑动结束之后才能计算,故手机侧在观看自由视角时会存在时延;这个目前自己的想法是:视频旋转可以跟随手势滑动进行旋转,即手势滑动的时候,设置一定初始值进行计算,每次滑动一定的角度,让视频跟随手势滑动旋转。

3.       网络:这个问题不论在手机上还是STB上都存在,因为目前自由视角暂时没有做本地视频,只能从平台拉去流分片,故和网络息息相关。在测试中发现当网络好的情况下,旋转效果会很流畅,不好的情况下就会很卡。

 

下面对STB的遗留问题给出自己的理解,不正确的地方或者好的建议欢迎留言:

按键一直不抬起或者遥控器红外对着别的地方:这种情况目前我的规避方法是如果1s中之内没有接受到按键抬起的输入,就默认为按键时长1s,为什么设置1s,因为在STB侧,旋转一个机位耗时大约50ms,遥控器按键按下到抬起大约是200ms左右。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。