在投射初始化后,发件人发出请求在正在运行的接收器上加载媒体
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"
我需要在发送方更新媒体会话。我如何实现这一目标?
答案 0 :(得分:0)
当另一个媒体开始播放时,您可以使用session.stop和addUpdateListener结束当前媒体。
要停止,您可以使用文档中提供的此代码段:
function stopApp() {
session.stop(onSuccess, onError);
}
您还可以查看此相关SO post以供参考。 希望这会有所帮助。
答案 1 :(得分:0)
接收器以下列方式加载下一个媒体后,我能够更新发送方的媒体会话。例如,在剧集内容中,从一集转换到另一集。
On Sender:
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
On Sender:
在上面的 [在此更新下一个媒体会话] 中添加以下内容。
var nextMediaSession = session.getSessionObj().media; //returns instance of chrome.cast.media.Media which is the updated media session of the second episode