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:
- 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.
- 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 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. Mẫu nâng cao của Roku dựa vào 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ọ tiến trong luồng theo một số giây đã đặt. Điều tương tự phương thức xử lý bước nhảy này cũng sẽ kiểm tra xem bước nhảy đưa họ qua hoặc vào một điểm chèn quảng cáo và nếu có, đưa người dùng vào đầ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 vị trí tìm kiếm ban đầu
Trong trình xử lý adBreakEnded
, hãy kiểm tra xem khoảng nghỉ quảng cáo trước đó có được phát do tính năng quay lại nhanh hay không. Nếu có, hãy trả về
đến vị trí mà họ đang cố gắng tìm kiếm ban đầu (nếu
vì đó không phải là đoạn giữa của điểm chèn quảng cáo vừa được phát):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function