- Phát ngoại tuyến bằng giấy phép ổn định và Widevine L1 hiện được hỗ trợ trên Android.
- Chrome hiện tắt các kênh video khi phát video MSE ở chế độ nền để tối ưu hoá hiệu suất.
- Nhà phát triển web có thể tuỳ chỉnh phạm vi có thể tìm kiếm trên luồng MSE trực tiếp.
- Chrome hiện hỗ trợ FLAC trong MP4 bằng MSE.
- Video sẽ chuyển sang chế độ toàn màn hình khi thiết bị được xoay.
Giấy phép có hiệu lực lâu dài cho Android
Giấy phép ổn định trong Encrypted Media Extensions (EME) (Tiện ích nội dung đa phương tiện được mã hoá) có nghĩa là giấy phép có thể được lưu trữ trên thiết bị để các ứ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 ngoại tuyến trong EME.
Cho đến nay, ChromeOS là nền tảng duy nhất hỗ trợ giấy phép ổn định. Điều này không còn đúng nữa. Giờ đây, bạn cũng có thể phát nội dung được bảo vệ thông qua EME khi thiết bị ở 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ự thử giấy phép ổn định bằng cách xem PWA nội dung nghe nhìn mẫu và làm theo các bước sau:
- Truy cập https://biograf-155113.appspot.com/ttt/episode-2/
- Nhấp vào "Cho phép sử dụng khi không có mạng" rồi chờ video tải xuống.
- Bật chế độ trên máy bay.
- Nhấp vào nút "Phát" để thưởng thức video!
Widevine L1 cho Android
Như bạn có thể biết, tất cả thiết bị Android đều bắt buộc phải hỗ trợ Cấp độ bảo mật Widevine 3 (Widevine L3). Tuy nhiên, có nhiều thiết bị cũng hỗ trợ mức bảo mật cao nhất: Mức bảo mật Widevine 1, trong đó tất cả 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).
Tin vui! Widevine L1 hiện được hỗ trợ trong Chrome dành cho Android để có thể phát nội dung đa phương tiện 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:
- Truy cập vào https://shaka-player-demo.appspot.com/demo/ rồi nhấp vào "Cho phép" khi được nhắc.
- Chọn "Angel One (multicodec, đa ngôn ngữ, Widevine)".
- Nhập
HW_SECURE_ALL
vào trường "Video Robustness" ("Độ ổn định của video") của phần "Configuration" ("Cấu hình"). - Nhấp vào nút "Tải" rồi thưởng thức video!
Tối ưu hoá kênh video ở chế độ nền (chỉ dành cho MSE)
Nhóm Chrome luôn tìm cách cải thiện thời lượng pin và Chrome 62 cũng không ngoại lệ.
Giờ đây, Chrome sẽ tắt các kênh video khi video phát trong nền (ví dụ: trong một thẻ không hiển thị) nếu video sử dụng Tiện ích nguồn nội dung nghe nhì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ể tua trên luồng MSE trực tiếp
Như bạn có thể đã biết, thuộc tính seekable
chứa các phạm vi của tài nguyên đa phương tiện mà trình duyệt có thể tìm kiếm. Thông thường, thuộc tính này chứa một khoảng 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 nghe nhìn. Tuy nhiên, nếu không có thời lượng (chẳng hạn như sự kiện phát trực tiếp), 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 bằng Tiện ích nguồn phương tiện (MSE) bằng cách cung cấp hoặc xoá một phạm vi có thể tua lại được hợp nhất với các phạm vi được lưu vào bộ đệm hiện tại. Điều này dẫn đến một phạm vi có thể tua lại phù hợp với cả hai, khi thời lượng của nguồn nội dung nghe nhìn là +Infinity
.
Trong mã bên dưới, nguồn nội dung đa phương tiện đã được đính kèm vào một phần tử media và chỉ chứa phân đoạn init của phần tử đó:
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 không đề cập ở trên, vì vậy, bạn nên thử mẫu chính thức để xem các phạm vi thời gian có thể lưu vào bộ đệm và tua lại phản ứng như thế nào với các sự kiện MSE khác nhau.
Ý định phát hành | Trình theo dõi trạng thái Chrome | Lỗi Chromium
FLAC trong MP4 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 nghe nhìn thường xuyên. FLAC trong tính năng hỗ trợ ISO-BMFF (còn gọi là FLAC trong MP4) đã được thêm vào ngay sau đó. Giờ đây, FLAC trong MP4 đã có trong Chrome 62 cho Tiện ích nguồn nội dung đa phương tiện (MSE).
Để biết thông tin, nhóm 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ố kỹ thuật đóng gói MP4, và BBC đã thử nghiệm việc sử dụng thông số kỹ thuật đó với MSE. Bạn có thể đọc bài đăng "Phân phối âm thanh của buổi hòa nhạc trên Đài phát thanh 3" của BBC để tìm hiểu thêm.
Sau đây là cách bạn có thể phát hiện xem FLAC trong 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 tham khảo mẫu chính thức của chúng tôi.
Ý định phát hành | 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 thiết bị được xoay
Nếu bạn xoay thiết bị sang chế độ ngang trong khi video đang phát trong khung nhìn, thì chế độ phát sẽ tự động chuyển sang chế độ toàn màn hình. Khi xoay thiết bị sang chế độ dọc, video sẽ trở lại chế độ cửa sổ. Hãy xem bài viết trước của chúng tôi để biết thêm thông tin chi tiết.