Chromecast - Chrome发件人 - 如何更新发件人的媒体会话?

问题描述 投票:0回答:2

在转换初始化之后,发送方请求在正在运行的接收器上加载媒体

var session = window.cast.framework.CastContext.getInstance().getCurrentSession();
...
session.loadMedia(loadRequest);

然后,接收器使用MediaManager加载下一个媒体

    var mediaManager = new cast.receiver.MediaManager(mediaElement);
    ...
    mediaManager.load(loadRequestData); // "Loads a media session on the receiver without involvement of a sender"

我需要在发送方更新媒体会话。我该如何实现这一目标?

google-cast
2个回答
0
投票

当另一个媒体启动时,您可以使用session.stopaddUpdateListener结束当前媒体。

要停止,您可以使用文档中提供的此代码段:

function stopApp() {
  session.stop(onSuccess, onError);
}

您也可以查看这个相关的SO post以供参考。希望这可以帮助。


0
投票

接收器以下列方式加载下一个媒体后,我能够更新发送方的媒体会话。例如,在剧集内容中,从一集转换到另一集。

发件人:

    var session = window.cast.framework.CastContext.getInstance().getCurrentSession();
    ...
    session.loadMedia(loadRequest).then(function() {
        ...
        // this is a media session of the first episodic content
        mediaSession = session.getMediaSession();   // returns instance of chrome.cast.media.Media
        mediaSession.addUpdateListener(function(isAlive) {
            // invoked when the status of the media has changed
            // [update next media session here]
        });
        ...
    }, function() {
       //errorHandler
    });

在接收者

var mediaManager = new cast.receiver.MediaManager(video);
...
// the first episode is loaded from sender to receiver
...
// after the first episode is complete, loads second episode
mediaManager.load(loadRequestData); // loadRequestData contains media request data and its metadata

发件人:

在上面的[更新下一个媒体会话]中添加以下内容。

var nextMediaSession = session.getSessionObj().media; //returns instance of chrome.cast.media.Media which is the updated media session of the second episode
© www.soinside.com 2019 - 2024. All rights reserved.