Khoá cài

Là nhà xuất bản video, bạn nên ngăn người xem tìm kiếm qua quảng cáo trong video. Khi người dùng tìm kiếm một điểm chèn quảng cáo, bạn có thể đưa họ trở lại điểm bắt đầu của điểm chèn quảng cáo, sau đó quay lại họ đến vị trí tìm kiếm của mình sau khi điểm chèn quảng cáo đó hoàn tất. Chiến dịch này được gọi là "quay lại".

Để biết ví dụ, hãy xem sơ đồ dưới đây. Khán giả đang xem video, và quyết định tìm từ mốc 5 phút đến mốc 15 phút. Tuy nhiên, có một điểm chèn quảng cáo ở mốc 10 phút mà bạn muốn để trẻ xem trước khi xem nội dung sau khi video đó kết thúc:

Để hiển thị điểm chèn quảng cáo này, hãy làm theo các bước sau:

  1. Kiểm tra xem người dùng có chạy một lượt tìm kiếm nhảy qua điểm chèn quảng cáo mà bạn chưa xem hay không, và nếu có, hãy đưa họ trở lại điểm chèn quảng cáo.
  2. Sau khi điểm chèn quảng cáo kết thúc, hãy đưa các quảng cáo trở về lượt tìm kiếm ban đầu.

Ở dạng biểu đồ, mã sẽ có dạng như sau:

Dưới đây là cách triển khai tính năng chụp nhanh bằng SDK IMA DAI, như được minh hoạ trong Ví dụ nâng cao.

Ngăn lượt tìm kiếm để lại một điểm chèn quảng cáo chưa được xem

Kiểm tra xem người dùng có chạy một lượt tìm kiếm mà đã vượt qua điểm chèn quảng cáo mà bạn chưa xem hay không, và nếu có, hãy đưa họ trở lại điểm chèn quảng cáo. Trong SDK HTML5, hãy thiết lập trình nghe sự kiện trên sự kiện seeked của trình phát nội dung để kích hoạt onSeekEnd(). Phương thức này (được trình bày bên dưới) kiểm tra điểm dừng trước thời gian tìm kiếm của người dùng. Nếu video chưa được phát, hãy tìm đến đầu video đó điểm chèn quảng cáo thay vì điểm tìm kiếm mong muốn ban đầu và lưu điểm tìm kiếm đó điểm tua ở snapForwardTime.

function onSeekEnd() {
  if (isLiveStream) { return; }
  if (isSnapback) {
    isSnapback = false;
    return;
  }
  var currentTime = videoElement.currentTime;
  var previousCuePoint =
      streamManager.previousCuePointForStreamTime(currentTime);
  if (previousCuePoint && !previousCuePoint.played) {
    isSnapback = true;
    snapForwardTime = currentTime;
    videoElement.currentTime = previousCuePoint.start;
}

Đưa người dùng quay lại lệnh tìm kiếm ban đầu

Bây giờ, khi bạn nhận được một sự kiện trên AD_BREAK_ENDED, hãy kiểm tra xem snapForwardTime có phải là đã được đặt. Nếu có, hãy đưa người dùng đến điểm đó trong luồng vì quảng cáo điểm chèn quảng cáo mà họ vừa xem là kết quả của việc quay lại quảng cáo:

function onAdBreakEnded(e) {
  videoElement.controls = true;
  clickElement.style.display = 'none';
  adUiDiv.style.display = 'none';
  if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
    videoElement.currentTime = snapForwardTime;
    snapForwardTime = null;
  }
}