【问题标题】:adding custom controls for seeking to the controlbar添加自定义控件以寻找到控制栏
【发布时间】:2014-04-27 20:05:32
【问题描述】:

我有一个用例,我需要使用自定义按钮在视频中向前和向后搜索。我附上了我的播放器的屏幕截图(链接如下),包括底部的控件(-10 -5 +5 +10)。它的工作原理是,当点击时,视频会寻找到正确的位置。

我的播放器图片:http://tinyurl.com/k93xnya

经过数小时的研究,我无法弄清楚如何在控制栏上做同样的事情?我需要它们作为控制栏选项,以便它们可以在全屏模式下使用。

任何帮助或指导将不胜感激。谢谢

【问题讨论】:

    标签: html5-video video.js


    【解决方案1】:

    对于我的一个插件,我使用这种方法在播放/暂停切换的每一侧插入一个“上一个”和“下一个”按钮。

    -首先我们使用addChild()创建/添加新控件到控制栏

    -然后我使用一个函数来找到播放按钮的位置,因为那是我的参考点

    -一旦我知道播放按钮的位置,我就可以在它之前插入“上一个”按钮

    -一旦我知道播放按钮的新位置,我就可以在它之后(在下一个兄弟之前)插入“下一个”按钮。

    this.playlist.advancePlaylistButton = this.controlBar.addChild('advancePlaylist');
    this.playlist.regressPlaylistButton = this.controlBar.addChild('regressPlaylist');
    
    var playToggleLocation = 0;
    
    var playLocation = function() {
        var controlBarChildren = this.controlBar.el().childNodes;
        var loc = -1;
        for ( var x = 0; x < controlBarChildren.length; x++ ) {
            if ( controlBarChildren[x].className.indexOf('vjs-play-control') != -1) {
                loc = x;
                break;
            }
        }
        return loc;
    };
    
    
    playToggleLocation = playLocation();
    this.controlBar.el().insertBefore( this.playlist.regressPlaylistButton.el(), this.controlBar.el().childNodes[playToggleLocation] );
    
    this.controlBar.el().insertBefore( this.playlist.advancePlaylistButton.el(), this.controlBar.el().childNodes[playToggleLocation+1] );
    

    【讨论】:

      【解决方案2】:

      看来您正在使用 videojs。向 videojs 控制栏添加自定义按钮可能很棘手。您可以找到关于主题 hereherehere 的文章。您可能需要开发自己的plugin 以获得更好的结果。

      您还可以考虑为您的 HTML5 媒体播放器构建自己的 controls 集。更多关于全屏使用 HTML5 媒体元素here

      【讨论】:

      • 我听取了您的建议,并创建了一个与视频速度插件非常相似的新插件,并且效果很好。谢谢指点。
      • Florestan06,知道为什么插件不会在 iPad 上显示吗?它显示了自定义控件(非原生),但没有显示速度插件或我刚刚创建的新插件。
      • 已知 iPad 上的 Videojs 支持是部分的。由于这些事情,我一直在使用自己的 HTML5 播放器。还要考虑到一些功能,如playbackRate 在iOS 中不完全支持。示例:stackoverflow.com/questions/6436232/…
      • 在我最近使用不同播放器进行的测试中,playbackRate 在 iPad 上运行良好。但是自从切换到 videojs 之后,我什至无法显示这些控件,所以我无法对其进行测试。
      • Video.js 皮肤默认在移动设备上被禁用stackoverflow.com/questions/16697473/…
      猜你喜欢
      • 2014-12-16
      • 1970-01-01
      • 2014-04-22
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多