2017-07-24 41 views
0

Chromecast sdkChromecast的SDK爲Web session.queueLoad不是一個函數

我無法調用session.queueLoad(...),但是如果我用session.c.queueLoad(...)它的作品偶爾。 我也可以撥打session.loadMedia(...)。 這裏是我從我的網站上剝離下來的代碼示例。

var session = cast.framework.CastContext.getInstance().getCurrentSession(); 
 
     if(session) 
 
     { 
 
     var queueingItems = [..blahblah] 
 
     console.log(queueingItems) //works 
 
     queueingItems=queueingItems.map(m=>{ 
 
      var mediaInfo = new chrome.cast.media.MediaInfo(m.source, m.contentType) 
 
      mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata(); 
 
      mediaInfo.metadata.title = m.description; 
 
      var q = new chrome.cast.media.QueueItem(mediaInfo) 
 
      q.autoplay=true 
 
      return q 
 
     }) 
 
     
 
     var qloadRequest=new chrome.cast.media.QueueLoadRequest(queueingItems) 
 
     console.log(qloadRequest) 
 

 
     //works 
 
     session.c.queueLoad(qloadRequest,function(){ 
 
      console.log("loaded success") 
 
     },()=>{})  
 
     
 
     //doesn't work 
 
     session.queueLoad(qloadRequest,function(){ 
 
      console.log("loaded success") 
 
     },()=>{}) 
 
     
 
     //works 
 
     session.loadMedia(qloadRequest[0],function(){ 
 
      console.log("loaded success") 
 
     },()=>{}) 
 
     }

+0

「queueLoad(queueLoadRequest,successCallback,errorCallback)」 - 來自文檔。 註銷錯誤回調中的錯誤。 –

+0

它沒有事件到達errorCallback,它只是說它不是函數 –

回答

2

.getCurrentSession()返回CastSession對象。這沒有queueLoad方法。我想你想要使用CastSession'sgetSessionObj方法,因爲它會返回一個Session對象,它有queueLoad方法。

+0

需要注意的是,queueLoad不會像loadMedia那樣返回promise。相反,它接受成功和失敗回調作爲參數。 簽名看起來是這樣的: queueLoad( 要求:LoadRequestData, successCb:功能(可選), failCb(可選)) – ShaneDaugherty