Là một nhà xuất bản video, bạn có thể muốn ngăn người xem tua qua quảng cáo trong video. Khi người dùng tìm kiếm qua 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 đó, rồi đưa họ quay về vị trí tìm kiếm sau khi điểm chèn quảng cáo đã hiển thị xong. Tính năng này có tên là "quay lại nhanh".
Ví dụ: xem sơ đồ bên dưới. Người xem đang xem một video và quyết định tua 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 họ xem trước khi có thể xem nội dung sau đó:
Để hiển thị khoảng chèn quảng cáo này, hãy làm theo các bước sau:
- Kiểm tra xem người dùng có thực hiện thao tác tìm kiếm để chuyển qua một điểm chèn quảng cáo chưa xem hay không. Nếu có, hãy đưa họ quay lại điểm chèn quảng cáo đó.
- Sau khi điểm chèn quảng cáo kết thúc, hãy đưa người dùng trở lại vị trí tìm kiếm ban đầu.
Dưới dạng sơ đồ, điều đó có dạng như sau:
Dưới đây là cách triển khai tính năng snapback bằng SDK IMA DAI, như minh hoạ trong Ví dụ nâng cao của chúng tôi.
Ngăn người dùng tua qua điểm chèn quảng cáo mà không xem
Kiểm tra xem người dùng có thực hiện thao tác tua qua một điểm chèn quảng cáo chưa xem hay không. Nếu có, hãy đưa họ quay lại điểm chèn quảng cáo đó. Mẫu nâng cao của Roku dựa vào các lần nhấn nút từ xa để người dùng tìm kiếm – mỗi khi người dùng nhấn nút tiến, họ sẽ chuyển tiếp trong luồng phát theo một số giây nhất định. Cùng một phương thức xử lý bước nhảy này cũng kiểm tra xem bước nhảy có đưa người dùng vượt qua hoặc vào một điểm chèn quảng cáo hay không. Nếu có, phương thức này sẽ đưa người dùng đến đầu đ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 điểm tua ban đầu
Trong trình xử lý adBreakEnded
, hãy kiểm tra để xem liệu điểm chèn quảng cáo trước đó có được phát do tính năng tua lại hay không. Nếu có, hãy đưa người dùng trở lại vị trí mà họ đang tìm cách chuyển đến ban đầ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