在转换初始化之后,发送方请求在正在运行的接收器上加载媒体
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"
我需要在发送方更新媒体会话。我该如何实现这一目标?
当另一个媒体启动时,您可以使用session.stop和addUpdateListener结束当前媒体。
要停止,您可以使用文档中提供的此代码段:
function stopApp() {
session.stop(onSuccess, onError);
}
您也可以查看这个相关的SO post以供参考。希望这可以帮助。
接收器以下列方式加载下一个媒体后,我能够更新发送方的媒体会话。例如,在剧集内容中,从一集转换到另一集。
发件人:
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