Google Cast dành cho Chrome trên Android

Hãy tưởng tượng việc có thể sử dụng một ứng dụng web trên điện thoại để chiếu một bản trình bày lên máy chiếu hội nghị truyền hình — hoặc chia sẻ hình ảnh, chơi trò chơi hoặc xem video trên màn hình TV — khi dùng ứng dụng web dành cho thiết bị di động làm bộ điều khiển.

Bản phát hành Chrome mới nhất trên Android cho phép các trang web trình bày tới thiết bị Google Cast bằng SDK Cast Web. Điều này có nghĩa là giờ đây bạn có thể tạo ứng dụng dành cho người gửi Truyền bằng SDK web cho Chrome trên Android hoặc iOS (hoặc trên máy tính có tiện ích này) cũng như tạo ứng dụng sử dụng SDK Truyền gốc cho Android và iOS. (Trước đây, ứng dụng dành cho người gửi Google Cast cần có tiện ích Google Cast của Chrome, vì vậy, trên Android, bạn chỉ có thể tương tác với thiết bị truyền từ ứng dụng gốc.)

Dưới đây là giới thiệu ngắn gọn về cách tạo ứng dụng người gửi Truyền bằng cách sử dụng Web SDK. Bạn có thể xem thông tin toàn diện hơn trong Hướng dẫn phát triển ứng dụng dành cho người gửi Chrome.

Tất cả các trang sử dụng tính năng Truyền đều phải có Thư viện truyền:

<script
  type="text/javascript"
  src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"
></script>

Thêm lệnh gọi lại để xử lý tính sẵn có của API và khởi chạy phiên Truyền (nhớ thêm trình xử lý trước khi API được tải!):

window['__onGCastApiAvailable'] = function (isLoaded, error) {
  if (isLoaded) {
    initializeCastApi();
  } else {
    console.log(error);
  }
};

function initializeCastApi() {
  var sessionRequest = new chrome.cast.SessionRequest(applicationID);
  var apiConfig = new chrome.cast.ApiConfig(
    sessionRequest,
    sessionListener,
    receiverListener
  );
  chrome.cast.initialize(apiConfig, onInitSuccess, onError);
}

Nếu đang dùng ứng dụng Bộ thu nội dung đa phương tiện được tạo kiểu mặc định chứ không phải ứng dụng Trình thu tuỳ chỉnh đã đăng ký và tự cuộn, thì bạn có thể tạo một SessionRequest như sau:

var sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.
  DEFAULT_MEDIA_RECEIVER_APP_ID);

Lệnh gọi lại receiverListener ở trên được thực thi khi một hoặc nhiều thiết bị ra mắt:

function receiverListener(e) {
  if (e === chrome.cast.ReceiverAvailability.AVAILABLE) {
    // update UI
  }
}

Chạy một phiên Truyền khi người dùng nhấp vào biểu tượng Truyền, theo quy định trong Nguyên tắc về trải nghiệm người dùng:

chrome.cast.requestSession(onRequestSessionSuccess,
    onRequestSessionError);

function onRequestSessionSuccess(e) {
  session = e;
}

Người dùng sẽ thấy một bộ chọn thiết bị:

Hộp thoại chọn thiết bị truyền.

Hộp thoại chi tiết tuyến hiển thị khi trang đã được kết nối và gọi requestSession():

Hộp thoại chi tiết tuyến đường truyền.

Sau khi có phiên Truyền, bạn có thể tải nội dung nghe nhìn cho Thiết bị truyền đã chọn và thêm trình nghe cho các sự kiện phát nội dung nghe nhìn:

var mediaInfo = new chrome.cast.media.MediaInfo(mediaURL);
var request = new chrome.cast.media.LoadRequest(mediaInfo);
session.loadMedia(
  request,
  onMediaDiscovered.bind(this, 'loadMedia'),
  onMediaError
);

function onMediaDiscovered(how, media) {
  currentMedia = media;
  media.addUpdateListener(onMediaStatusUpdate);
}

Biến currentMedia ở đây là một đối tượng chrome.cast.media.Media có thể dùng để điều khiển quá trình phát:

function playMedia() {
  currentMedia.play(null, success, error);
}


    // ...

Thông báo phát/tạm dừng được hiển thị khi nội dung nghe nhìn đang phát:

Thông báo phát/tạm dừng truyền.

Nếu không có nội dung nghe nhìn nào đang phát thì thông báo chỉ có nút dừng để dừng truyền:

Thông báo dừng truyền.

Lệnh gọi lại sessionListener cho chrome.cast.ApiConfig() (xem ở trên) cho phép ứng dụng của bạn tham gia hoặc quản lý một phiên Truyền hiện có:

function sessionListener(e) {
  session = e;
  if (session.media.length !== 0) {
    onMediaDiscovered('onRequestSessionSuccess', session.media[0]);
  }
}

Nếu Chrome trên Android cho phép truyền nội dung nghe nhìn từ trang web của bạn nhưng bạn muốn tắt tính năng này để giao diện người dùng truyền mặc định không ảnh hưởng đến nội dung của bạn, hãy sử dụng thuộc tính disableRemotePlayback trong Chrome 49 trở lên:

<video disableRemotePlayback src="..."></video>

Thiết bị nhận và người gửi thay thế

Hướng dẫn về SDK Cast Web có đường liên kết đến các ứng dụng mẫu và thông tin về các tính năng Truyền như quản lý phiên, các bản văn bản (dành cho phụ đề và chú thích) cũng như thông tin cập nhật trạng thái.

Hiện tại, bạn chỉ có thể trình bày với Ứng dụng nhận truyền bằng cách sử dụng SDK Web truyền. Tuy nhiên, chúng tôi đang tiến hành một số giải pháp cho phép sử dụng API Bản trình bày mà không cần SDK Truyền (trên máy tính và Android) để trình bày bất kỳ trang web nào trên thiết bị truyền mà không cần đăng ký với Google. Không giống như SDK truyền chỉ dành cho Chrome, việc sử dụng API tiêu chuẩn sẽ cho phép trang hoạt động với các tác nhân người dùng và thiết bị khác hỗ trợ API.

API Bản trình bày, cùng với API Phát từ xa, là một phần trong nỗ lực của Nhóm làm việc màn hình thứ hai nhằm cho phép các trang web sử dụng màn hình thứ hai để hiển thị nội dung trên web.

Các API này tận dụng phạm vi các thiết bị đang được kết nối trực tuyến (bao gồm cả màn hình được kết nối chạy tác nhân người dùng) để hỗ trợ nhiều ứng dụng đa dạng bằng thiết bị "điều khiển" và thiết bị "hiển thị".

Chúng tôi sẽ thông báo cho bạn về tiến độ triển khai.

Trong thời gian chờ đợi, vui lòng cho chúng tôi biết nếu bạn phát hiện lỗi hoặc có yêu cầu về tính năng: crbug.com/new.

Tìm hiểu thêm