videojs에서 두 마커 사이에 선을 그리는 방법

벵갈 루루

나는 2 개 마커 I, 전자 사이 사이에 선을 그어야 할 '['']'상자.

나는 2 점 I, E를 startTime하고 endTime나는 기능에 의해 그들을 얻을 getRandomStartOrEndTime(), 나는 생각합니다 작은 으로 시간을 startTime하고 더 큰 하나endTime

두 상자가 [됩니다 ]에 의해 그려진 markplayer().

내가 시도한 것은 다음과 같습니다.

var player = videojs('example_video_1');

function getRandomStartOrEndTime(){
    var x = player.duration()// can be any number
    var rand = Math.floor(Math.random()*x) + 1;
    return rand;
}


function markplayer(){
    player.markers.removeAll();
    var t1 = getRandomStartOrEndTime();
    var t2 = getRandomStartOrEndTime();
    var inTimeOutTimeList = [], index = 0;
    if(t1 < t2) {inTimeOutTimeList.push(t1);index = 1;
    }else{inTimeOutTimeList.push(t2);index = 0;}
    (index == 1) ? inTimeOutTimeList.push(t2) : inTimeOutTimeList.push(t1);
        for(var i = 0; i < inTimeOutTimeList.length; i++){
            player.markers.add([{
            time: inTimeOutTimeList[i],
            text: inTimeOutTimeList[i]
        }]);

        var icon = (i == 0) ? '[' : ']';
        $(".vjs-marker[data-marker-time='"+inTimeOutTimeList[i]+"']").html(icon);
    }
    // lineWidth = (inTimeOutTimeList[1] - inTimeOutTimeList[0])/player.duration()*100 + '%';
    // $('.vjs-marker').css('width',lineWidth);
};

player.markers({
//    markerTip:{
//       display: true,
//       text: function(marker) {
//          return "I am a marker tip: "+ marker.text;
//       }
//    },
   breakOverlay:{
      display: true,
      displayTime: 120,
      style:{
         'width':'100%',
         'height': '30%',
         'background-color': 'rgba(10,10,10,0.6)',
         'color': 'white',
         'font-size': '16px'
      }
   },
   markers: [
      {time:10, startTime:10, endTime:60, text: "this", overlayText: "1", class: "special-blue"},
   ]
});

intervalIntId = setInterval(function(){
    markplayer();
},3000);
.vjs-fluid {
            overflow: hidden;
         }
         #example_video_1 .vjs-control-bar {
            display: block;
         }
         #example_video_1 .vjs-progress-control {
               bottom: 28px;
               left: 0;
               height: 10px;
               width: 100%;
         }
         
    .vjs-default-skin.vjs-has-started .vjs-control-bar {
            display: block !important;
            visibility: visible !important;
            opacity: 1 !important;
            /* bottom: -3.4em !important; */
            /* background-color: rgba(7, 20, 30, 1) !important; */
         }

.vjs-marker {
            background-color: transparent !important;
            height: 20px !important;
            font-size: 20px !important;
            color: red !important;
            font-weight: bold;
      }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="http://vjs.zencdn.net/4.2/video.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-markers/0.7.0/videojs-markers.js"></script>
<link href="http://vjs.zencdn.net/4.2/video-js.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/videojs-markers/0.7.0/videojs.markers.min.css" rel="stylesheet"/>
<video id="example_video_1" width="400" height="210" controls class="video-js vjs-default-skin" data-setup='{ "inactivityTimeout": 0 }'>
   <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
   <source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm">
</video>

칼리마

두 마커의 차이를 계산하고 그 차이를 세 번째 마커의 너비로 할당하여 작업을 수행했습니다.

또한 이전 버전의 video.js를 사용하고 있으므로 인터페이스가 약간 다르게 보일 수 있습니다.

다음은 그 예입니다.

var player = videojs('example_video_1');

function getRandomStartOrEndTime() {
  var x = player.duration() // can be any number
  var rand = Math.floor(Math.random() * x) + 1;
  return rand;
}


function markplayer() {
  player.markers.removeAll();
  var t1 = getRandomStartOrEndTime();
  var t2 = getRandomStartOrEndTime();
  var inTimeOutTimeList = [],
    index = 0;
  if (t1 < t2) {
    inTimeOutTimeList.push(t1);
    index = 1;
  } else {
    inTimeOutTimeList.push(t2);
    index = 0;
  }
  (index == 1) ? inTimeOutTimeList.push(t2): inTimeOutTimeList.push(t1);
  for (var i = 0; i < inTimeOutTimeList.length; i++) {
    player.markers.add([{
      time: inTimeOutTimeList[i],
      text: inTimeOutTimeList[i]
    }]);

    var icon = (i == 0) ? '[' : ']';
    $(".vjs-marker[data-marker-time='" + inTimeOutTimeList[i] + "']").html(icon);
  }
	
	 player.markers.add([{
    time: inTimeOutTimeList[0],
    text: "I'm new",
    overlayText: "I'm new",
    class: 'range-marker'
  }]);

	//jQuery(".range-marker").width();
	const first = jQuery(".vjs-marker").eq(0).position().left;
	const last = jQuery(".vjs-marker").eq(1).position().left;
	
	const width = last - first;
	jQuery(".range-marker").width(width+"px");

  // lineWidth = (inTimeOutTimeList[1] - inTimeOutTimeList[0])/player.duration()*100 + '%';
  // $('.vjs-marker').css('width',lineWidth);
};

player.markers({
  //    markerTip:{
  //       display: true,
  //       text: function(marker) {
  //          return "I am a marker tip: "+ marker.text;
  //       }
  //    },
  breakOverlay: {
    display: true,
    displayTime: 120,
    style: {
      'width': '100%',
      'height': '30%',
      'background-color': 'rgba(10,10,10,0.6)',
      'color': 'white',
      'font-size': '16px'
    }
  },
  markers: [{
    time: 10,
    startTime: 10,
    endTime: 60,
    text: "this",
    overlayText: "1",
    class: "special-blue"
  }, ]
});

intervalIntId = setInterval(function() {
  markplayer();
}, 3000);
.vjs-fluid {
  overflow: hidden;
}

#example_video_1 .vjs-control-bar {
  display: block;
}

#example_video_1 .vjs-progress-control {
  bottom: 28px;
  left: 0;
  height: 10px;
  width: 100%;
}

.video-js .vjs-progress-control:hover .vjs-play-progress:after {
  display: none;
}

.vjs-marker {
  background-color: transparent !important;
  height: 20px !important;
  font-size: 20px !important;
  color: red !important;
  font-weight: bold;
}

.vjs-marker.range-marker
{
	background-color: orange !important;
	height: 3px !important;
	margin-left: 0 !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/7.6.5/video.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-markers/0.7.0/videojs-markers.min.js"></script>
<link href="https://vjs.zencdn.net/7.5.5/video-js.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/videojs-markers/0.7.0/videojs.markers.min.css" rel="stylesheet" />
<video id="example_video_1" width="400" height="210" controls class="video-js vjs-default-skin">
   <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
   <source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm">
</video>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

HTML에서 두 div 사이에 선을 그리는 방법

분류에서Dev

Matplotlib 두 Y 점 사이에 수직선을 그리는 방법

분류에서Dev

지도에서 두 마커 사이를 확대하는 방법

분류에서Dev

Google Maps API에서 두 마커 사이에 경로를 그리는 방법은 무엇입니까?

분류에서Dev

laravel5.2를 사용하여 Google지도의 마커 사이에 선을 그리는 방법

분류에서Dev

두 요인 변수 사이에 여러 선을 그리는 방법

분류에서Dev

두 텍스트 줄 사이에 세로 구분선을 그리는 방법 android?

분류에서Dev

Google지도에서 두 마커 사이의 경로를 표시하는 방법

분류에서Dev

두 개의 QGraphicsItem 사이에 선을 그려 연결하는 방법 (마우스 사용)

분류에서Dev

마커 사이에 경로를 그리는 방법

분류에서Dev

Google지도에서 두 지점 사이에 선을 그리는 방법은 무엇입니까?

분류에서Dev

C # Windows Form에서 두 개체 사이에 선을 그리는 방법은 무엇입니까?

분류에서Dev

Swift에서 테두리없이 직사각형을 그리는 방법 (MacOS)

분류에서Dev

Filtering 후 1 쿼리에서 첫 번째와 마지막 행을 선택하고 한 쿼리에서 두 값 사이의 계산을 수행하는 방법

분류에서Dev

zsh 셸에서 명령 사이에 선을 그리는 방법

분류에서Dev

OpenCV에서 Aruco 마커에 사각형을 그리는 방법은 무엇입니까?

분류에서Dev

React Native에서 QR 코드 마커처럼 사각형 모서리에 테두리를 만드는 방법

분류에서Dev

Blazor에서 선을 그리는 방법?

분류에서Dev

ggplot2로 두 선 사이에 밀도 맵을 그리는 방법은 무엇입니까?

분류에서Dev

Leaflet을 사용하여 두 노드 사이에 경로를 그리는 방법

분류에서Dev

대화식 리베이스없이 두 커밋 사이에 모든 커밋을 삭제하는 방법

분류에서Dev

4 개의 선 길이를 모두 알고있을 때 사다리꼴의 마지막 두 좌표에 대해 가능한 값을 추론하는 방법

분류에서Dev

CorePlot-그래프 내의 서로 다른 산점도에서 두 플롯 기호 사이에 연결선을 그리는 방법

분류에서Dev

CSS를 사용하여 두 마커 사이에 이미지를 배치하는 방법 : 전단지

분류에서Dev

마우스로 SwiftUI에서 선을 그리는 방법은 무엇입니까?

분류에서Dev

PolyLine을 사용하여 Swift iOS에서 두 좌표 사이에 경로를 그리는 방법

분류에서Dev

mapbox.js를 사용하여 지정된 반경 값으로 마커 주위에 원을 그리는 방법

분류에서Dev

Highmaps의 세계지도에서 두 마커 사이에 작은 대칭 호선 경로를 그립니다.

분류에서Dev

목록의 각 행 사이에 선을 그리는 방법?

Related 관련 기사

  1. 1

    HTML에서 두 div 사이에 선을 그리는 방법

  2. 2

    Matplotlib 두 Y 점 사이에 수직선을 그리는 방법

  3. 3

    지도에서 두 마커 사이를 확대하는 방법

  4. 4

    Google Maps API에서 두 마커 사이에 경로를 그리는 방법은 무엇입니까?

  5. 5

    laravel5.2를 사용하여 Google지도의 마커 사이에 선을 그리는 방법

  6. 6

    두 요인 변수 사이에 여러 선을 그리는 방법

  7. 7

    두 텍스트 줄 사이에 세로 구분선을 그리는 방법 android?

  8. 8

    Google지도에서 두 마커 사이의 경로를 표시하는 방법

  9. 9

    두 개의 QGraphicsItem 사이에 선을 그려 연결하는 방법 (마우스 사용)

  10. 10

    마커 사이에 경로를 그리는 방법

  11. 11

    Google지도에서 두 지점 사이에 선을 그리는 방법은 무엇입니까?

  12. 12

    C # Windows Form에서 두 개체 사이에 선을 그리는 방법은 무엇입니까?

  13. 13

    Swift에서 테두리없이 직사각형을 그리는 방법 (MacOS)

  14. 14

    Filtering 후 1 쿼리에서 첫 번째와 마지막 행을 선택하고 한 쿼리에서 두 값 사이의 계산을 수행하는 방법

  15. 15

    zsh 셸에서 명령 사이에 선을 그리는 방법

  16. 16

    OpenCV에서 Aruco 마커에 사각형을 그리는 방법은 무엇입니까?

  17. 17

    React Native에서 QR 코드 마커처럼 사각형 모서리에 테두리를 만드는 방법

  18. 18

    Blazor에서 선을 그리는 방법?

  19. 19

    ggplot2로 두 선 사이에 밀도 맵을 그리는 방법은 무엇입니까?

  20. 20

    Leaflet을 사용하여 두 노드 사이에 경로를 그리는 방법

  21. 21

    대화식 리베이스없이 두 커밋 사이에 모든 커밋을 삭제하는 방법

  22. 22

    4 개의 선 길이를 모두 알고있을 때 사다리꼴의 마지막 두 좌표에 대해 가능한 값을 추론하는 방법

  23. 23

    CorePlot-그래프 내의 서로 다른 산점도에서 두 플롯 기호 사이에 연결선을 그리는 방법

  24. 24

    CSS를 사용하여 두 마커 사이에 이미지를 배치하는 방법 : 전단지

  25. 25

    마우스로 SwiftUI에서 선을 그리는 방법은 무엇입니까?

  26. 26

    PolyLine을 사용하여 Swift iOS에서 두 좌표 사이에 경로를 그리는 방법

  27. 27

    mapbox.js를 사용하여 지정된 반경 값으로 마커 주위에 원을 그리는 방법

  28. 28

    Highmaps의 세계지도에서 두 마커 사이에 작은 대칭 호선 경로를 그립니다.

  29. 29

    목록의 각 행 사이에 선을 그리는 방법?

뜨겁다태그

보관