Chromecast sdk for web session.queueLoad 不是一个函数

Zha*_*uce 1 javascript chromecast

Chromecast SDK

我无法调用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")
        },()=>{})  
      }
Run Code Online (Sandbox Code Playgroud)

小智 5

.getCurrentSession()返回一个CastSession对象。那就没有这个queueLoad方法了。我认为您想使用CastSession 的 getSessionObj方法,因为它返回一个Session具有queueLoad方法的对象。