Dấu trang

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 SDK IMA DAI khi sử dụng tính năng Chèn quảng cáo động (DAI) cho các luồng video theo yêu cầu (VOD). Điều này giả định một cách triển khai IMA DAI đang hoạt động, chẳng hạn như 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à tính năng lưu và sau đó quay lại một điểm cụ thể trong luồng nội dung. Giả sử một người dùng xem nội dung trong 5 phút, rời khỏi luồng video rồi quay lại nội dung đó. Tính năng dấu trang sẽ lưu vị trí của người dùng trong luồng để luồng có thể tiếp tục phát từ nơi đã dừng lại, mang lại trải nghiệm liền mạch cho người xem.

Tính năng đánh dấu trang DAI (Chèn quảng cáo động)

Khi đánh dấu một luồng DAI, bạn phải ghi lại mã 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 luồng lại và tìm thời gian tiết kiệm được. Vì mỗi phiên bản của luồng được yêu cầu có thể có các điểm chèn quảng cáo với thời lượng khác nhau, nên việc lưu thời gian phát trực tiếp sẽ không hoạt động. Những gì 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 pháp chuyển đổi giải cứu

SDK IMA DAI cung cấp một cặp phương thức để yêu cầu thời gian nội dung trong một thời gian phát trực tiếp nhất định và thời gian phát trực tiếp cho một thời gian nội dung nhất định. Bằng cách 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 được đánh dấu, sau đó tìm thời gian phát trực tiếp tương ứng trong thực thể mới của luồng. Sau đây là phương pháp, bao gồm cả đường liên kết đến một ứng dụng mẫu minh hoạ cách triển khai tính năng đánh dấu trang đang hoạt động.

Đang 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)];
}

Đang tải dấu trang

Tải dấu trang khi yêu cầu lại một luồng. Đây là một phần của quá trình 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