Bản cập nhật về nội dung nghe nhìn trong Chrome 62

François Beaufort
François Beaufort

Giấy phép cố định cho Android

Giấy phép lâu dài trong Tiện ích phương tiện đã mã hoá (EME) có nghĩa là giấy phép có thể được duy trì trên thiết bị để ứng dụng có thể tải giấy phép vào bộ nhớ mà không cần gửi yêu cầu cấp phép khác đến máy chủ. Đây là cách hỗ trợ tính năng phát khi không có mạng trong EME.

Cho đến nay, ChromeOS là nền tảng duy nhất hỗ trợ giấy phép lâu dài. Không còn đúng nữa. Giờ đây, bạn cũng có thể phát nội dung được bảo vệ qua EME khi thiết bị đang ở chế độ ngoại tuyến trên Android.

const config = [{
  sessionTypes: ['persistent-license'],
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'SW_SECURE_DECODE' // Widevine L3
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content while being offline when
  // license is stored locally on device and loaded later.
})
.catch(error => {
  // Persistent licenses are not supported on this platform yet.
});

Bạn có thể tự mình dùng thử giấy phép cố định bằng cách xem phần Sample Media PWA và làm theo các bước sau:

  1. Truy cập https://biograf-155113.appspot.com/ttt/episode-2/
  2. Nhấp vào "Cho phép sử dụng khi không có mạng" và chờ video tải xuống.
  3. Bật chế độ trên máy bay.
  4. Nhấp vào nút "Phát" và thưởng thức video!

Widevine L1 dành cho Android

Như bạn đã biết, tất cả thiết bị Android đều phải hỗ trợ Cấp độ bảo mật của Widevine 3 (Widevine L3). Tuy nhiên, có nhiều thiết bị trên thị trường cũng hỗ trợ cấp bảo mật cao nhất: cấp bảo mật Widevine 1, nơi mọi hoạt động xử lý nội dung, mã hoá và kiểm soát đều được thực hiện trong Môi trường thực thi đáng tin cậy (TEE).

Chúng tôi có tin vui dành cho bạn! Widevine L1 hiện đã được hỗ trợ trong Chrome dành cho Android để nội dung nghe nhìn có thể được phát theo cách an toàn nhất. Xin lưu ý rằng tính năng này đã được hỗ trợ trên ChromeOS.

const config = [{
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'HW_SECURE_ALL' // Widevine L1
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
  // Widevine L1 is not supported on this platform yet.
});

Shaka Player, thư viện JavaScript cho các định dạng nội dung nghe nhìn thích ứng (chẳng hạn như DASH và HLS) có bản minh hoạ để bạn dùng thử Widevine L1:

  1. Truy cập vào https://shaka-player-demo.appspot.com/demo/ rồi nhấp vào "Allow" (Cho phép) khi được nhắc.
  2. Chọn "Angel One (đa mã, đa ngôn ngữ, Widevine)".
  3. Nhập HW_SECURE_ALL vào trường "Video Robustness" (Độ mạnh của video) trong phần "Cấu hình".
  4. Nhấp vào nút "Tải" và thưởng thức video!

Tối ưu hoá bản nhạc trong nền (chỉ dành cho MSE)

Nhóm Chrome luôn cố gắng tìm kiếm những cách mới để cải thiện thời lượng pin và Chrome 62 cũng không phải là ngoại lệ.

Giờ đây, Chrome sẽ tắt các bản nhạc video khi video được phát ở chế độ nền (ví dụ: trong một thẻ không hiển thị) nếu video đó sử dụng Tiện ích nguồn phương tiện (MSE). Hãy xem bài viết trước của chúng tôi để tìm hiểu thêm.

Tuỳ chỉnh phạm vi có thể tìm kiếm đối với sự kiện phát trực tiếp MSE trực tiếp

Như bạn đã biết, thuộc tính seekable chứa phạm vi của tài nguyên nội dung đa phương tiện mà trình duyệt có thể tìm kiếm. Thông thường, tệp này chứa một phạm vi thời gian duy nhất bắt đầu từ 0 và kết thúc tại thời lượng tài nguyên nội dung đa phương tiện. Tuy nhiên, nếu không có thời lượng, chẳng hạn như chương trình phát trực tiếp, thì phạm vi thời gian có thể liên tục thay đổi.

Tin vui là giờ đây, bạn có thể tuỳ chỉnh logic phạm vi seekable hiệu quả hơn với Tiện ích nguồn nội dung đa phương tiện (MSE) bằng cách cung cấp hoặc xoá một phạm vi có thể tìm kiếm được hợp nhất với các phạm vi vùng đệm hiện tại. Điều này dẫn đến một phạm vi có thể tìm kiếm duy nhất phù hợp với cả hai, khi thời lượng nguồn nội dung nghe nhìn là +Infinity.

Trong mã dưới đây, nguồn nội dung nghe nhìn đã được đính kèm vào một phần tử nội dung đa phương tiện và chỉ chứa phân đoạn khởi đầu của nó:

const mediaSource = new MediaSource();
...

mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }

mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }

// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

Có nhiều trường hợp mà tôi chưa đề cập ở trên, vì vậy bạn nên thử mẫu chính thức để xem phạm vi thời gian có vùng đệm và có thể tìm kiếm phản ứng như thế nào với các sự kiện MSE khác nhau.

Ý định gửi | Trình theo dõi trạng thái Chrome | Lỗi Chromium

FLAC ở định dạng MP4 dành cho MSE

Kể từ Chrome 56, định dạng mã hoá âm thanh không tổn hao FLAC đã được hỗ trợ khi phát nội dung đa phương tiện thông thường. FLAC trong tính năng hỗ trợ ISO-BMFF (còn gọi là FLAC trong MP4) ngay sau đó. Giờ đây, bạn có thể sử dụng FLAC ở định dạng MP4 trong Chrome 62 cho Tiện ích nguồn nội dung nghe nhìn (MSE).

Cụ thể, các bạn tham gia Firefox là những người phát triển và triển khai tính năng hỗ trợ FLAC trong thông số đóng gói MP4, và BBC đã và đang thử nghiệm việc sử dụng tính năng đó với MSE. Bạn có thể đọc bài đăng "Phân phối âm thanh buổi hoà nhạc Radio 3" của BBC để tìm hiểu thêm.

Dưới đây là cách xác định xem FLAC ở định dạng MP4 có được hỗ trợ cho MSE hay không:

if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
  // TODO: Fetch data and feed it to a media source.
}

Nếu bạn muốn xem ví dụ đầy đủ, hãy xem mẫu chính thức của chúng tôi.

Ý định gửi | Trình theo dõi trạng thái Chrome | Lỗi Chromium

Video tự động chuyển sang chế độ toàn màn hình khi xoay thiết bị

Nếu bạn xoay thiết bị sang chế độ ngang khi video đang phát trong khung nhìn, thì quá trình phát sẽ tự động chuyển sang chế độ toàn màn hình. Việc xoay thiết bị sang chế độ dọc sẽ đưa video trở lại chế độ cửa sổ. Hãy xem bài viết trước đây của chúng tôi để biết thêm chi tiết.