产品百科 |如何启用 H5 的同层播放

简介: 您可以阅读本文,了解阿里云视频点播产品在 H5 的同层播放功能。

背景信息

阿里云播放器 2.0.1 及以上,支持在 Android 微信小程序上支持 H5 同层播放功能,此功能只对 Android 腾讯的 X5 浏览器起作用。

如果微信没有启用同层播放,在 Android 微信上播放视频时,会自动弹出全屏播放, 覆盖 Dom 元素。

同层播放属性

名称 类型 说明
x5_type String 启用同层播放,设置值为 h5。
x5_fullscreen Boolean 声明视频播放时是否进入到 TBS 的全屏模式,支持的值为 true。
x5_video_position String 声明视频播在界面上的位置,默认为 center。取值:
  • top:顶部。
  • center:中央。
x5_orientation String 声明 TBS 播放器支持的方向,取值:
  • landscape:横屏。
  • portraint:竖屏。

同层播放设置

  • 不全屏同层播放通过设置 x5_type 属性为 h5,将 playsinline 设置为 false,启用同层播放。
    通过 x5_video_position 定义视频的位置,如果在顶部可以设置为 top,居中可以设置 center,默认为 center。
    Demo,请下载 H5 Demo
    image.png
  • 全屏同层播放通过设置 x5_type 属性为 h5,将 playsinline 设置为 false,启用同层播放,设置 x5_fullscreen 为 true,启用全屏, 全屏播放器不需要设置 x5_video_position 属性。
    全屏播放视频默认是平铺的,如果想不平铺可以设置 object-fit 的样式为 contain 或其它。
video {
    object-fit: contain !important;
    }

同层播放的建议

在使用同层播放器时,为您提供的的一些建议,如下所示。

  • 监听 resize 事件实现自适应视口大小变化,视频播放时会调整视口大小。
  • 在视频播放期间的交互、弹框和字幕要在视频视频区域中,不要在视频区域外。
  • 对于直播类全屏视频,最好不要在最顶部放交互性元素。
  • 对于需要全屏交互的,可以将 video 区域设置为视口大小。

更多设置

  • 进入和退出同层播放时布局处理在进入和退出同层播放的事件里,可以添加一些调整布局的逻辑,时常在进入同层播放时,布局需要做一下调整。例如全屏,元素的位置等。
    进入事件: x5requestFullScreen。
    退出事件: x5cancelFullScreen。
  • 更多的自定义如果 x_video_position 属性的 top 和 center 不能满足要求,可以通过自定义 object-fit 和 object-position 属性,进行更灵活的设置视频的显示位置。
  • object-fit 属性object-fit:CSS 属性指定替换元素的内容应该如何适应到其使用的高度和宽度确定的框。取值:
  • object-fit:fill。
  • object-fit:contain
  • object-fit:cover
  • object-fit: none
  • object-fit: scale-down
  • 每个值的效果图展示如下所示。
    image.png
    CSS 代码如下所示。
video {
    object-fit: contain !important;
    }
  • object-position 属性object-position:CSS 属性控制替换内容位置,和 background-position 属性很类似。
    CSS 代码如下所示。
img {
   width: 300px;
   height: 250px;
   border: 1px solid black;
   background-color: silver;
   margin-right: 1em;
   object-fit: none;
}
#object-position-1 {
  object-position: 10px;
}
#object-position-2 {
  object-position: 100% 10%;
}
  • 效果如下所示。image.png
  • 调整播放器容器的高度由于设置了视频的位置,会引起 controlbar 显示不是在视频的最下面,可以通过订阅 resize 和 requestFullScreen 事件调整视频容器的高度。
var setLayout = function()
{    
    //设置播放器容器的高度
    var height ; //根据实际情况设置高度
    player.el().style.height = height;
}
window.onresize = function(){
    setLayout();
}
player.on("requestFullScreen", function(){
    setLayout();
});


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。


image.png

相关文章
|
API 图形学
Unity设置播放模式下始终先执行指定的场景
通过我们使用Unity开发游戏,是在PC/Mac上。而一个游戏通常也会有很多的场景,比如A、B、C、D三个场景,正常流程下的执行顺序是 A –> B –> C –> D。在具体一点,比如 A —— 启动场景、B —— 资源加载场景、C —— 登录场景、D —— 战斗场景。
1846 0
|
4月前
|
编解码 JavaScript 前端开发
使用 MediaSource 规范实现自适应流播放
【10月更文挑战第26天】通过以上步骤,就可以使用MediaSource规范实现自适应流播放,根据网络状况动态地调整播放的码率,为用户提供更流畅的观看体验。需要注意的是,实际应用中还需要处理更多的细节和错误情况,以确保播放的稳定性和可靠性。
|
5月前
ThreeJs手动控制动画播放与暂停
这篇文章介绍了如何在Three.js中手动控制动画的播放与暂停,包括设置动画混合器、监听按键事件以调整动画状态和速度的方法。
149 0
ThreeJs手动控制动画播放与暂停
|
8月前
解除谷歌浏览器默认禁止音频自动播放
解除谷歌浏览器默认禁止音频自动播放
127 1
|
10月前
|
XML Android开发 数据格式
使用默认闪电浏览器 全屏播放视频时有黑边
使用默认闪电浏览器 全屏播放视频时有黑边
108 5
|
C++
Qt图片定时滚动播放器+透明过渡动画
解决:[QWidget::paintEngine: Should no longer be called QPainter::begin: Paint device returned engine == 0, type: 1] 需要在哪个控件上绘制,就要在哪个控件类中重写 paintEvent() ,所以本项目 需要使用自定义的MyQLabel继承QLabel
194 0
播放视频时有残影、水纹的原因
播放视频时有残影、水纹的原因
222 0
|
移动开发 iOS开发
移动端阻止弹窗下层页面被滑动方法介绍
移动端阻止弹窗下层页面被滑动方法介绍
|
Web App开发 前端开发 JavaScript
网页自适应跟随系统深色模式
近几年,各个主流操作系统都逐渐开端注重深色方式,从而改善用户在环境光亮低时的阅读体验。随着水果在 iOS 13 与 macOS Mojave 中添加了深色方式,除了 Linux 以外一切的主流操作系统都曾经完成了系统层级的深色方式。Linux 由于 DE、WM 的种类繁杂暂时没有统一的标准,但目前可以经过深色 GTK+ 主题、阅读器插件等方式完成“伪全局”深色方式。既然有了系统层级的适配,阅读器就可以读取深色方式开关,从而完成网页的自顺应。这就是新标准 prefers-color-scheme。
1237 0
网页自适应跟随系统深色模式
|
Web App开发 移动开发 JavaScript
用aliplayer如何实现视频的连续播放?
场景 假如有多个视频,在上一个视频播放完毕时,自动播放下一个视频,要怎么处理的呢?需要按使用的播放器类型和切换的地址格式,采用不同的实现方式。 直播地址方式 这种方式最简单,h5和flash的行为都是一致的,只需要订阅'ended', 在ended事件里,调用loadByUrl方法, 参数为下一个视频的地址。
6561 0