Я использую плагин 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, чтобы добавить специальный маркер, введя информацию: время начала, время окончания и определение для каждого действия. Затем этот маркер будет отображаться на временной шкале, у меня уже есть некоторые идеи по этому поводу. Итак, теперь мне просто интересно, как создать объект «маркер» и установить свой собственный «markerStyle», а не использовать класс «маркеры» и вводить новую информацию в этот список маркеров.
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'}
]
Это недокументированная опция в sampingchuang.com/videojs-маркеры, но она является частью кода. См. github.com/spchuang/videojs-markers/blob/…