Videojs-marker:如何自定义特殊标记而不是使用通用的"标记"?



我正在使用videojs-marker插件(http://www.sampingchuang.com/videojs-markers(来构建一个自定义播放器,用户可以通过该播放器注释(命名一个人的动作(视频的某些部分(而不仅仅是一个点(,所以我的计划是使每个标记都有其适当的宽度(因此它可以覆盖此操作的持续时间(以及覆盖文本的适当显示时间。

<script>
var player = videojs("my-video", {
    controls: true,
    autoplay: false,
    preload: 'auto',
...
player.markers({
       markerStyle: {
          'width':'10px',
          'border-radius': '30%',
          'background-color': '#009DE0'
       },
       markerTip:{
          display: true,
          text: function(marker) {
             return marker.text;
          },
          time: function(marker) {
             return marker.time;
          }
       },
       breakOverlay:{
          display: true,
          displayTime: 1,
          style:{
             'width':'100%',
             'height': '20%',
             'background-color': 'rgba(0,0,0,0.7)',
             'color': 'white',
             'font-size': '17px'
          },
          text: function(marker) {
             return marker.overlayText;
          }
       },
       onMarkerClick: function(marker) {},
       onMarkerReached: function(marker) {},
         markers: [
         {time: 9.5, text: "1",overlayText: 'attack', class: 'custom-marker'},
         {time: 15, text: "2",overlayText: 'defense'}
         ]
        });
...

因此,用户将通过输入信息来操作另一个div以添加特殊标记:每个操作的开始时间,结束时间和定义。然后这个标记将显示在时间轴中,我已经对这部分有一些想法。所以现在,我只是想知道如何创建"标记"对象并设置自己的"标记样式",而不是使用"标记"类并在此标记列表中输入新信息

markers: [
     {time: 9.5, text: "p1",overlayText: 'attack', class: 'custom-marker'},
     {time: 15, text: "p2",overlayText: 'defense'}
     ]

我是新来的,如果描述不清楚,很抱歉,请给我您的反馈,谢谢!

我花了太多时间考虑宽度,所以我省略了一个属性:"持续时间"。解决方案很简单,只需在代码段中添加持续时间:

markers: [
 {time: 9.5,duration:3, text: "p1",overlayText: 'attack', class: 'custom-marker'},
 {time: 15, duration:2 ,text: "p2",overlayText: 'defense'}
 ]

最新更新