【问题标题】:When resizing video.js using API, fullscreen does not work使用 API 调整 video.js 大小时,全屏不起作用
【发布时间】:2014-08-12 10:49:47
【问题描述】:

我的视频是从标记实例化的,具有宽度和高度(实际上是虚拟值)。

<video id='ytvidplayer' class='video-js vjs-default-skin' controls autoplay
preload='auto' width='xxx' height='xxx' poster='xxx'

data-setup='{}'>

<source src='xxx' type='video/mp4'>
<source src='xxx' type='video/webm'>


Whoops. Your browser does not Support HTML5 or Flash. Please upgrade your browser.
</video>

页面呈现后,我将调整视频大小,使其宽度为屏幕大小的三分之一 (33%)。这一切都很好。

var newHeight
var newWidth
newWidth = $(window).width() * 0.33;
newHeight = newWidth * 0.75;
$('#ytvidplayer').css('height',newHeight);
$('#ytvidplayer').css('width',newWidth);
//set related video div height eual to video height
$('#related_vids_scroller').css('height',newHeight);
var myVideo = videojs('ytvidplayer');
myVideo.width(newWidth).height(newHeight);

一切都按预期工作,直到我尝试全屏。当按下全屏按钮时,视频对象的物理“黑色”容器变为全屏,但视频保持在 API 调整大小的宽度和高度。

这是 video.js 中的一个错误,即在全屏时不考虑(覆盖)API 调整大小的值?

当我不使用 API 实际调整视频大小,并且只有原始标记(具有宽度和高度)时...全屏工作正常。

  1. 我已经尝试在标记中使用“自动”来表示 with 和 height,尝试将视频调整为它的容器(33% div),所以我不必自己使用api. 但是在w=autoh=auto 上,视频呈现没有高度,但似乎具有正确的宽度......它播放......它只是不可见(视频进度条在那里,并且宽度正确(填充 33% 格)。

  2. 我已尝试附加到 window.resize,但在使用 API 调整视频大小时遇到​​困难,它真的是“切换”吗..需要知道我是退出还是进入全屏模式...基于对此,我需要调整大小...

有什么想法吗?我是否过于复杂了?

【问题讨论】:

    标签: javascript jquery html html5-video video.js


    【解决方案1】:

    #ytvidplayer 上设置 css 宽度和高度将是问题所在。 #ytvidplayer 将是一个视频元素或一个 div,具体取决于播放器是否已在此时创建。删除这些并仅使用 API 调整大小应该有效:

    $('#ytvidplayer').css('height',newHeight);
    $('#ytvidplayer').css('width',newWidth);
    

    【讨论】:

    • 您好,先生。感谢您的输入。当我发布这个问题时,我完全采用了另一条路线......并以 auto=h 和 auto=w 呈现,并使用一些有趣的样式来“填充”视频。我不再使用 API 来调整大小。目前,我无法确认您的回答,但会将其标记为已接受。如果有人来,并且可以确认这可能不起作用,我们将重新访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多