安卓视频播放(阿里云视频点播播放器SDK+SurfaceView)

本篇文章讲述使用阿里云视频视频播放sdk中的高级播放器加上SurfaceView实现,采用id+STS方法进行视频播放。

流程:用户App获取STS凭证 -> 服务端下发STS凭证 -> 用户上传视频并获取vid -> 服务端获取STS凭证 -> 将STS凭证下发给客户端 -> 完成视频播放。

请看阿里云文档=========》》》》》》 阿里云-高级播放器Android使用说明

接下来我们来看一下安卓给我们提供的手势控制类

接口

setOnTouchListener(this);

其中定义了四种状态 NONE = 0, VOLUME = 1, BRIGHTNESS = 2, FF_REW = 3;
接下来我们来看一下我们自定义的SurfaceViewOnGestureListener继承 GestureDetectorSimpleOnGestureListener主要用到了
onDown(MotionEvent e)
onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)两个方法

a在onDown的时候把状态设置NONE
b判断横向滑动的距离大于纵向滑动的距离,就把模式赋值为快进和后退
c在onScroll中进行状态赋值,根据滑动的距离,如果按下的点在屏幕的左半部分就吧状态设置为调节亮度BRIGHTNESS,如果在右半部分就是调节音量
d各种情况调用各自的接口方法

快进和后退,我们需要知道的就是我们滑动的距离如何与视频的长度关联起来。
那么咱们就可以把视频的总长度与屏幕的总长度相比,这样就能知道你手指滑动的距离占视频的多少了。
我们可以通过 l = duration / mySurfaceViewgetWidth();来获得这个比例,然后用当前的进度加上指滑动的距离占视频的长度就是要播放的视频位置

抬起点的x坐标与按下点的X坐标所得的距离,大于0是快进,小于零是后退。

系统的音量有很多,包括通话音量值,系统铃声值,音乐音量值,闹铃音量值,等等吧。
做一下笔记以备以后用到

视频播放我们用的是音乐音量值,同样的道理,我们需要把音量和高度进行关联,我们可以控件的高度闭上最大音量得出比例后就可以知道你滑动的距离占音量的多少了。

这里有个注意点就是activity是当前的这个界面,设置的是当前的界面,离开这个界面后就不管用了。

相同的道理和滑动调节音量一样也是获得屏幕的高度比上最大的亮度,然后计算滑动的距离转换成亮度是多少。(这里不多讲了)

为什么会出现黑屏,就是按Home键再点App回来后,只有声音没有的问题,因为我们用的是SurfaceView,每次点击Home键时会销毁这个SurfaceView,再回来时又会重新创建,这样我们的阿里云播放器与SurfaceView就没有绑定了,画面就没有了。
这样我们需要 给surfaceView添加mySurfaceViewgetHolder()addCallback(this);

我们在按home键的时候会走surfaceDestroyed。这样,我们就可以在这里做一个标识,让他暂停,然后再回来的时候就会走surfaceCreated,判断标识,然后进行处理就可以了。切记一定要重新让aliyunVodPlayer与SurfaceView进行关联,这样才能有画面也有声音。

由于我们的视频在阿里云的服务器上存着,访问阿里云的服务器需要临时凭证,我们通过STS来获取Token,但是这个Token是有时间限制,正好阿里云的播放器给我们提供了播放视频出错时候的回调接口,我们只需要在这里面进行重新请求Token就可以了

现在的云主机大多有管理控制面板使用非常方便阿里云也不例外,首先需要在阿里网站上开通云主机,然后进入到控制面板选择你所选择的 *** 作系统并安装使用即可
另外阿里是国内的大企业用户量大,所以阿里并没有提供相关的技术支持云主机从开通到使用全是由用户自己 *** 作的如果你对这些不熟悉建议还是选择其他IDC公司更明智一些不仅云主机的性价比高过阿里云而且有技术帮你安装配置网站环境会方便很多
以上是个人建议希望帮到你若有云主机问题需要帮忙的可以来找我

d性灵活。
阿里云支持全球多地域部署以及多中心架构选择,有充足的资源保障,可以随时随地d性创建资源。在阿里云的平台上可以实现分钟级扩容上千台实例,快速满足业务高峰时的资源需求,同时当业务高峰消失时,您可以将多余的资源释放掉,以减少业务成本。
*** 作便捷。
提供基于Web的用户界面,页面简单清晰,内置各种功能模块,您可以像 *** 作实体机器一样,对云服务器ECS实例进行启停、配置变更等 *** 作。
灵活的计费方式。
云服务器ECS提供包年包月、按量付费、抢占式实例三种计费方式,满足不同应用场景需求。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13252176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-26
下一篇 2023-06-26

发表评论

登录后才能评论

评论列表(0条)

保存