我正在使用 Actor 引用播放器示例代码来开发接收器应用程序。我正在使用转换消息总线发送将启动我的媒体的 JSON 字符串。
因此,在我的 player.html
中,我初始化了cast 消息总线
。当我收到我想要播放的媒体的 JSON
时,我从 player.html
初始化 player.js
,如下所示:
//receive message to play -> pass media through
var player = document.getElementById('player');
new sampleplayer.CastPlayer(player).start();
然后在我的player.js
中:
sampleplayer.CastPlayer.prototype.start = function() {
var self = this;
var message = //JSON string
this.load(JSON.parse(message));
var millisecondsToWait = 8000;
setTimeout(function() {
//Pause Works
self.mediaElement_.pause();
}, millisecondsToWait);
var millisecondsToWait = 10000;
setTimeout(function() {
//Play Works
self.mediaElement_.play();
}, millisecondsToWait);
};
我能够启动媒体,我可以使用上面的代码播放/暂停媒体。
当我尝试使用 Remote 上的播放/暂停按钮时,出现以下错误:
[cast.receiver.MediaManager] 意外命令,播放器处于 IDLE 状态,因此媒体 session ID 尚未生效
。
我也没有获得之前获得的任何 PlayState
更新。
我相信我没有初始化正确的东西,但我不确定是什么。有谁知道对我来说有一个好的起点吗?谢谢
最佳答案
我希望这可以帮助别人。
我可以使用 playerManager.load(loadRequestData)
和 playerManager.play()
通过 PlayerManger 成功加载并启动视频。但是,一旦我停止使用 playerManager.stop()
然后尝试再次播放,我就会收到此错误:
[cast.receiver.MediaManager] Unexpected command, player is in IDLE state so the media session ID is not valid yet
发生这种情况是因为 playerManager.stop()
方法从标记中卸载视频。
要解决此问题,只需在播放前检查视频是否已加载即可。
示例:
if (isNaN(playerManager.getDurationSec())) {
// the player has been stopped, then I reload the video
// Load with autoplay: playerManager.load(loadRequestData)
// create some queue items
const item = new cast.framework.messages.QueueItem()
item.media = new cast.framework.messages.MediaInformation()
item.media.contentId = '/movie.mp4'
const items = [item]
// Create a new queue with media.
let queueData = new cast.framework.messages.QueueData()
queueData.items = items
// [cast.receiver.MediaManager] Media or QueueData is mandatory
const loadRequestData = new cast.framework.messages.LoadRequestData()
loadRequestData.queueData = queueData
cast.framework.CastReceiverContext.getInstance()
.getPlayerManager().load(loadRequestData)
}
else {
playerManager.play()
}
关于javascript - Chromecast 接收器应用程序 - 意外命令,播放器处于 IDLE 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43366352/