Khoá cài

Là nhà xuất bản video, bạn nên ngăn người xem tìm kiếm 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 trước đó, bạn có thể đưa họ trở lại điểm bắt đầu của điểm chèn quảng cáo đó và sau đó đưa họ về vị trí tìm kiếm sau khi điểm chèn quảng cáo đó đã hoàn tất. Tính năng này được gọi là "quay lại".

Ví dụ: hãy xem sơ đồ dưới đây. Người xem đang xem video và quyết định tìm kiếm từ mốc 5 phút đến 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 họ xem rồi mới có thể xem tiếp nội dung sau:

Để 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 tua vượt qua điểm chèn quảng cáo 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 chúng trở lại phiên bản đầu tiên.

Dạng biểu đồ sẽ có dạng như sau:

Dưới đây là cách triển khai ảnh chụp nhanh bằng cách sử dụng SDK IMA DAI, như được minh họa trong Ví dụ nâng cao của chúng tôi.

Ngăn người dùng tua để 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 cụm từ tìm kiếm đã vượt qua điểm chèn quảng cáo chưa xem hay không. Nếu đã xem, hãy đưa họ trở lại điểm chèn quảng cáo đó. Mẫu nâng cao của Roku dựa trên các thao tác nhấn nút từ xa để người dùng tìm kiếm – mỗi lần người dùng nhấn nút tiến, họ sẽ chuyển về phía trước trong luồng theo một số giây đã đặt. Phương thức xử lý bước chuyển này cũng sẽ kiểm tra để xem liệu lượt chuyển đó có vượt qua/ hoặc đi vào một điểm chèn quảng cáo hay không. Nếu có, thì hệ thống sẽ đưa người dùng đến điểm bắt đầu của điểm chèn quảng cáo đó:

Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
  previousAd = streamManager.getPreviousCuePoint(updatedTime)
  If previousAd = Invalid or previousAd.hasPlayed
    player.seek(updatedTime * 1000)
  Else If previousAd.start > player.currentTime
    player.isSnapback = True
    player.timeAfterSnapback = updatedTime
    player.seek(previousAd.start * 1000 + 1000)
  End If
End Function

Đưa người dùng trở lại thanh tua ban đầu

Trong trình xử lý adBreakEnded, hãy kiểm tra xem điểm chèn quảng cáo trước đó có được phát là kết quả của quá trình quay lại nhanh hay không. Nếu có, hãy đưa người dùng trở lại vị trí họ muốn tìm lúc đầu (miễn là vị trí đó không phải là giữa điểm chèn quảng cáo vừa phát):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function