플레이어 인스턴스화 지연

이 항목에서는 HTML 페이지를 탐색 할 때 Brightcove Player의 인스턴스화를 지연하는 방법을 알아 봅니다. 이 기술이 유용한 사용 사례는 예를 들어 플레이어가있는 페이지가 처음에 인스턴스화되지 않은 라이트 박스 스타일 및 단일 페이지 웹 앱입니다.

인스턴스화 지연

고급 (페이지 내 삽입) 플레이어 구현 코드를 사용하지만 플레이어 인스턴스화를 지연시키는 몇 가지 사용 사례가 있습니다. 이렇게하려면 다음을 변경해야합니다. <videos-js>태그의 속성을 사용하고bc()플레이어를 초기화하는 메서드입니다. 메서드는 플레이어 ID 또는 플레이어 요소 자체를 인수로 사용할 수 있습니다.

video-js 태그 수정

플레이어 인스턴스화를 지연 할 때 모든<video-js>태그의 속성 또는 플레이어가 인스턴스화됩니다. 표준 고급 (인 페이지 포함) 코드에서 세 가지 속성을 제거해야합니다. 제거해야하는 속성은 다음과 같습니다.

  • data-account
  • data-player
  • data-video-id

이렇게하면 다음 속성이<video-js>꼬리표:

  • data-embed
  • class
  • controls (optional)

이 세 가지 속성 중 하나라도 남아 있기 때문에 속성을 제거해야하는 이유는 Brightcove Player가 인스턴스화되도록합니다.

사용되는 고급 코드는 다음 코드 스 니펫에서 패턴 화되어야합니다. 참고id태그에 추가됩니다.

<video-js id="myPlayerID"
  data-embed="default"
  controls=""></video-js>
<script src="https://players.brightcove.net/1507807800001/5e28670f-28ce-4ed6-8809-227784965834_default/index.min.js"></script>

아래에 표시된 고급 코드 및 JavaScript 코드에 대한 이러한 변경 사항은 함께 작동하여 플레이어의 인스턴스화를 지연시킵니다.

JavaScript 사용

매우 일반적인 방법은 다음과 유사한 코드를 사용하여 플레이어와 프로그래밍 방식으로 상호 작용할 준비를하는 것입니다.

videojs.getPlayer('myPlayerID').ready(function() {
  var myPlayer = this;
});

이 접근 방식은 플레이어를 인스턴스화하므로 사용할 수 없습니다. 대신, 당신은bc()다른 환경 설정이 설정된 후 플레이어를 인스턴스화하는 방법. 이bc()메서드는 Brightcove Player의 새 인스턴스를 만드는 데 사용되며 일반적으로 다음을 사용할 때 자동으로 호출됩니다. <video-js>여기에 설명 된 단계를 따르지 않는 한 태그.

  • 라인 2-3: 플레이어의 변수를 선언하고video-js요소를 가져옵니다.
  • 라인 4-5: JavaScript setAttribute()메서드를 사용하여data-account및 를 설정합니다data-player . 이는 분석 및 기타 서비스를 추적하는 데 중요합니다.
  • 라인 6: 자바 스크립트setAttribute()메소드를 사용하여 비디오 ID를 설정합니다.
  • 9호선: bc()메서드를 사용하여 플레이어를 초기화합니다.
  • 12 ~ 15 행 : 프로그래밍 방식으로 비디오를 재생합니다. loadedmetadata이벤트가 전달될 때까지 기다리면 비디오를 재생하기 전에 카탈로그에서 검색한 것입니다.
<script type="text/javascript">
  var myPlayer,
    vTag = document.getElementById('myPlayerID');
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');
  vTag.setAttribute('data-video-id', 2114345470001);

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc(vTag);

  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.on('loadedmetadata',function(){
    myPlayer.muted(true);
    myPlayer.play();
  });
</script>
  • 라인 2-3: 플레이어의 변수를 선언하고video-js요소를 가져옵니다.
  • 라인 4-5: JavaScript setAttribute()메서드를 사용하여data-account및 를 설정합니다data-player . 이는 분석 및 기타 서비스를 추적하는 데 중요합니다.
  • 8호선: bc()메서드를 사용하여 플레이어를 초기화합니다.
  • 라인 10: 플레이어에src대한 을 설정합니다. 그것은매우 중요둘 다 설정하려면srctype소스 개체의 경우. 재생 기술 순서의 첫 번째 옵션이 비디오 유형과 일치하지 않는 경우 일부 브라우저에서 문제가 발생할 수 있습니다.
  • 13호선: 프로그래밍 방식으로 비디오를 재생합니다. 물론 이것은 필요하지 않습니다.
<script type="text/javascript">
  var myPlayer,
    vTag = document.getElementById('myPlayerID');
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc(vTag);

  myPlayer.src({ src: "//solutions.brightcove.com/bcls/assets/videos/Tiger.m3u8", type: "application/x-mpegURL"});
  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.muted(true);
  myPlayer.play();
</script> 

아니id플레이어에

어떤 이유로 든 사용하지 않으려면id플레이어에서 다음 코드를 사용하여 인스턴스화를 지연 할 수 있습니다.

  • 라인 3-4: 플레이어의 변수를 선언하고video-js요소를 가져옵니다.
  • 라인 7-8: JavaScript setAttribute()메서드를 사용하여data-account및 를 설정합니다data-player . 이는 분석 및 기타 서비스를 추적하는 데 중요합니다.
  • 9호선: 자바 스크립트setAttribute()메소드를 사용하여 비디오 ID를 설정합니다.
  • 라인 12: bc()메서드를 사용하여 플레이어를 초기화합니다.
  • 15 ~ 18 행 : 프로그래밍 방식으로 비디오를 재생합니다. loadedmetadata이벤트가 전달될 때까지 기다리면 비디오를 재생하기 전에 카탈로그에서 검색한 것입니다.
<script type="text/javascript">
  // Retrieve the element by tag name, returns an array so use the zeroth array element
  var myPlayer,
    vTag = document.getElementsByTagName('video-js')[0];

  // Assign the needed attributes
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');
  vTag.setAttribute('data-video-id', 2114345470001);

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc(vTag);

  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.on('loadedmetadata',function(){
    myPlayer.muted(true);
    myPlayer.play();
  });
</script>
  • 라인 3-4: 플레이어의 변수를 선언하고video-js요소를 가져옵니다.
  • 라인 7-8: JavaScript setAttribute()메서드를 사용하여data-account및 를 설정합니다data-player . 이는 분석 및 기타 서비스를 추적하는 데 중요합니다.
  • 11호선: bc()메서드를 사용하여 플레이어를 초기화합니다.
  • 13호선: 플레이어에src대한 을 설정합니다. 그것은매우 중요둘 다 설정하려면srctype소스 개체의 경우. 재생 기술 순서의 첫 번째 옵션이 비디오 유형과 일치하지 않는 경우 일부 브라우저에서 문제가 발생할 수 있습니다.
  • 지하철 16호선 프로그래밍 방식으로 비디오를 재생합니다. 물론 이것은 필요하지 않습니다.
<script type="text/javascript">
  // Retrieve the element by tag name, returns an array so use the zeroth array element
  var myPlayer,
    vTag = document.getElementsByTagName('video-js')[0];

  // Assign the needed attributes
  vTag.setAttribute('data-account', 1507807800001);
  vTag.setAttribute('data-player', 'BdGVdOd36');

  // Use the bc() method to initialize the Brightcove Player
  myPlayer = bc('vTag');

  myPlayer.src({ src: "//solutions.brightcove.com/bcls/assets/videos/Tiger.m3u8", type: "application/x-mpegURL"});
  // Mute (in case there is an audio track, in which case play won't work) and play the video
  myPlayer.muted(true);
  myPlayer.play();
</script> 

SSAI 광고 장애 조치가 포함 된 CSAI

광고 장애 조치가 켜져 있으면 Brightcove Player가 브라우저에 광고 차단기가 있는지 감지합니다. 그렇지 않은 경우 클라이언트 측 광고 (CSAI)가 재생됩니다. 광고 차단기가 감지되면 플레이어가 자동으로 서버 측 광고 (SSAI)를 요청합니다. 자세한 내용은 SSAI : 광고 차단 감지 및 자동 장애 조치문서.

기본적으로bc()메서드를 사용하면 플레이어가 즉시 초기화됩니다. 광고 장애 조치를 사용하려는 경우bc()메서드를 사용하려면 플레이어가 광고 차단기가 있는지 확인하기를 기다려야합니다. 다음 코드로이를 수행 할 수 있습니다.

bc.usingAdBlocker().then(function() {
  // The promise callback receives a true/false result, which is stored
  // internally, so future bc() calls will use it. There is no need to
  // handle it yourself.
  //
  // You can pass custom arguments to bc, as normal, if needed.
  bc();
});

다음은 몇 가지 예제 코드입니다.

HTML

이것은 예제의 HTML입니다.

<video-js id="myPlayerID"
	data-embed="default"
	data-application-id=""	
	controls=""
	width="640"
	height="360"></video-js>
<script src="//players.brightcove.net/1752604059001/W6RmT8TVL_default/index.min.js"></script>

자바 스크립트

이것은 예제의 JavaScript입니다.

<script type="text/javascript">
  // +++ Define the player options +++
  var options = {
    controlBar: {
      volumePanel: {
        inline: false,
        vertical: true
      }
    }
  };

  // +++ Add the player attributes +++
  var myPlayer,
		myPlayerEl = document.getElementById("myPlayerID");
  myPlayerEl.setAttribute('data-account', 1752604059001);
  myPlayerEl.setAttribute('data-player', 'W6RmT8TVL');
  myPlayerEl.setAttribute('data-video-id', 5802784116001);

  // +++ Create the player +++
  bc.usingAdBlocker().then(function() {
    myPlayer = bc(myPlayerEl, options);

    // +++ Optionally, mute and start playback +++
    myPlayer.on('loadedmetadata',function(){
      myPlayer.muted(true);
      myPlayer.play();
    });
  });
</script>