在调用startSession()之后,chromecast“无法启动应用程序:没有应用程序正在运行”

时间:2013-08-27 07:27:43

标签: android chromecast

我正在测试使用chromecast播放在线视频。 在onRouteSelected()之后,我创建ApplicationSession并附加MediaProtocalMessageStream;

然后我在没有APP_ID的情况下调用了mSession.startSession();,所以我假设chromecast内置的内置应用为我播放视频。这段代码非常完美,我可以在不编写自己的接收器的情况下播放在线mp4视频。

但是,当我尝试离开视频播放应用时,我不能再回去了,onSessionStartFailed()总会出现一条错误消息,上面写着

  

StartSessionTask失败并显示错误:无法启动应用程序:否   应用程序正在运行

我不记得我第一次进入视频播放应用程序时,我几天都没有离开。

但我确实知道如何离开它,这是我在再也无法开始之前所做的事情:

  1. 打开Youtube应用,获得安装连接
  2. 播放一些YouTube视频
  3. 与chormecast断开连接,然后chromecast返回到起始页
  4. 那么,有没有人知道这里发生了什么?如何再次打开内置视频应用程序?

    顺便说一下,我的chromecast在我返回起始页面后得到系统更新,我不知道google update是否会导致startSession()失败。

    下面是代码I startSession并附加mediaStream。

    mSession = new ApplicationSession(mCastContext, mSelectedDevice);
    ApplicationSession.Listener listener = new ApplicationSession.Listener() {
        @Override
        public void onSessionStarted(ApplicationMetadata appMetadata) {
            mChannel = mSession.getChannel();
            mStream = new MediaProtocolMessageStream();
            mChannel.attachMessageStream(mStream);
            if (mStream.getPlayerState() == null) {
                ContentMetadata metaData = new ContentMetadata();
                metaData.setTitle("Test Video");
                String url = "http://www.auby.no/files/video_tests/h264_720p_hp_5.1_6mbps_ac3_planet.mp4";
                try {
                    mCommand = mStream.loadMedia(url, metaData, true);
                    mCommand.setListener(new MediaProtocolCommand.Listener() {
                        @Override
                        public void onCompleted(MediaProtocolCommand arg0) {
                            onSetVolume(0.5);
                        }
    
                        @Override
                        public void onCancelled(MediaProtocolCommand arg0) {
    
                        }
                    });
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        @Override
        public void onSessionStartFailed(SessionError error) {
            Log.d("TEST", "Session Started failed");
        }
    
        @Override
        public void onSessionEnded(SessionError error) {
            Log.d("TEST", "Session Started end");
        }
    };
    mSession.setListener(listener);
    try {
        mSession.startSession();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    

1 个答案:

答案 0 :(得分:1)

您必须使用自己的应用ID和自己的接收器。谷歌的默认接收器不再播放视频流(以前)。它现在只处理Chrome标签镜像。