Lưu và tải dấu trang luồng quảng cáo

Chọn nền tảng: HTML5 Android iOS tvOS Roku

Hướng dẫn này trình bày cách triển khai tính năng đánh dấu trang bằng IMA DAI SDK khi sử dụng tính năng Chèn quảng cáo động (DAI) cho luồng video theo yêu cầu (VOD). Hướng dẫn này giả định rằng bạn đã triển khai IMA DAI, chẳng hạn như cách triển khai được trình bày trong phần Bắt đầu.

Đánh dấu trang là gì?

Đánh dấu trang là khả năng lưu và sau đó quay trở lại một điểm cụ thể trong luồng nội dung. Giả sử một người dùng xem năm phút nội dung, rời khỏi luồng video đó rồi quay lại xem sau. Tính năng đánh dấu trang lưu vị trí của người dùng trong luồng nên luồng có thể tiếp tục phát từ nơi đã dừng lại, cung cấp trải nghiệm liền mạch cho người xem.

Tìm hiểu sâu về tính năng đánh dấu trang DAI

Khi đánh dấu trang một luồng DAI, bạn phải ghi lại mã nhận dạng luồng và thời gian khi người dùng rời khỏi video. Khi người dùng quay lại, hãy yêu cầu lại luồng và tìm đến thời gian đã lưu. Vì mỗi thực thể của luồng được yêu cầu có thể có các khoảng thời gian nghỉ quảng cáo khác nhau, nên việc chỉ lưu thời gian luồng sẽ không hoạt động. Điều bạn thực sự muốn làm là tiếp tục từ cùng một thời gian nội dung.

Phương thức chuyển đổi để giải quyết vấn đề

IMA DAI SDK cung cấp một cặp phương thức để yêu cầu thời gian nội dung cho một thời gian luồng nhất định và thời gian luồng cho một thời gian nội dung nhất định. Khi sử dụng các phương thức chuyển đổi này, bạn có thể lưu trữ thời gian nội dung đã đánh dấu trang, sau đó tìm đến thời gian luồng tương ứng trong thực thể mới của luồng. Dưới đây là phương pháp, bao gồm cả đường liên kết đến một ứng dụng mẫu cho thấy cách triển khai tính năng đánh dấu trang đang hoạt động.

Lưu dấu trang

Lưu dấu trang khi Hoạt động bị tạm dừng.

- (void)viewWillAppear:(BOOL)animated {
  ...
  self.bookmarkTime =
      [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
          self.playerViewController.player.currentTime)];
}

Tải dấu trang

Tải dấu trang khi yêu cầu lại luồng. Đây là một phần của việc triển khai giao diện VideoStreamPlayer.

- (void)streamManagerIsPlaybackReady:(IMAStreamManager *)streamManager {
...
  if (self.bookmarkTime != 0) {
    NSTimeInterval streamTime = [self.streamManager
        streamTimeForContentTime:self.bookmarkTime];
    [self.playerViewController.player
        seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
  }
}

Ứng dụng mẫu

Ứng dụng mẫu