2014-03-06 57 views
3

我有一個接收器,其上設置一個直接videoElement(即我不從發送者chrome.cast.Session.loadMedia()方法設定它)中的src。Chromecast - Chrome發件人 - 如何連接到現有媒體會話?

的videoElement已經傳遞到Chromecast的媒體管理器:

mediaManager = new cast.receiver.MediaManager(videoElement); 

當我連接發送器(或發送者已經連接),我想媒體的狀態更新。目前我正在使用Chrome API進行發送。

不幸的是,當視頻加載並開始在接收器上播放它記錄消息:

[cast.receiver.MediaManager] Not sending status as there is no on going LOAD request. 

如何挖掘到來自發件人媒體會話不啓動加載事件?

這可能是值得一提的是,session.media[]總是顯示爲空,如果我設置:

session.addMediaListener(sessionMediaListener); 

sessionMediaListener()從未被稱爲

回答

1

今天有沒有辦法啓動從接收方的媒體會話。 LOAD命令是觸發會話創建的原因,因此您需要在發送接收器後立即要求發送者發送LOAD命令。

請注意,您可以覆蓋LOAD命令做任何你想要的行爲(如設置src元素自己...),但會話創建是內部的媒體管理類。

按在第二/第三發送狀態更新,他們將只要他們加入應用會話(無需重新發起/重裝)接收媒體狀態更新。

我會有興趣的原因,它是你的問題,從發送方(如果有的話)觸發負荷。

+0

我已經走了讓接收者告訴發件人加載哪個媒體的路線。這似乎是一個不必要的額外步驟。 –

+0

@MarcFallows我相信我遇到了同樣的問題。你是說你有接收者發送消息給發送者,然後讓發送者調用load()? – masterwok

+1

@masterwok過去一直如此,但接收者現在可以在沒有發件人參與的情況下加載媒體:https://developers.google.com/cast/docs/reference/receiver/cast.receiver。 MediaManager#load –

0

你實際上是繞過媒體管理的所有內部工作; MediaManager實際上並不知道您正在播放的媒體內容,因此無法爲您提供所需的信息。

+0

所以所有的媒體都必須由發件人加載?這似乎是一個主要限制。沒有辦法從接收方加載發件人獲取更新的媒體嗎? 與從不同發件人加載的媒體獲取更新的發件人不同嗎? –

+0

您可以讓接收器裝入媒體或做別的事要在您的自定義接收器,但隨後的媒體管理器被繞過,你需要做的通知/在你自己的接收器連接更新發送者的工作。媒體管理是建立在從發件人接收器媒體控制消息和處理那些與給發件人提供反饋適當的時候;如果你想有不同的流程,你需要構建一些適合你自己用例的東西。 –

+0

很抱歉,如果這些問題看似重複,但可以確認有沒有辦法利用媒體管理器的接收器和獲取媒體會話保持發件人如果從接收器裝入介質?我正在尋找'chrome.cast.Session.loadMedia()',但從接收器啓動。 –

相關問題