2013-08-27 3 views
1

나는 chromecast를 사용하여 온라인 비디오를 테스트하고 있습니다. onRouteSelected() 이후에 ApplicationSession을 만들고 MediaProtocalMessageStream을 첨부합니다.호출 된 startSession() 후에 chromecast "응용 프로그램을 시작하지 못했습니다 : 응용 프로그램이 실행되지 않았습니다"

그런 다음 APP_ID가없는 mSession.startSession();을 호출했습니다. 따라서 chromecast의 빌드 인 앱이 나를 위해 비디오를 재생한다고 가정합니다. 이 코드는 완벽하게 작동하며 내 수신기를 작성하지 않고도 온라인 mp4 비디오를 재생할 수 있습니다.

그러나, 나는 동영상 재생 응용 프로그램을 떠날 때, 난 더 이상 돌아갈 수는 오류 메시지가

StartSessionTask failed with error: failed to start application: no application is running

내가 어떻게 첫번째 기억하지 않습니다 말한다 onSessionStartFailed()에서 온다 항상있다 시간 나는 비디오 재생 애플 리케이션에있어, 나는 며칠 동안 떠나지 않는다.

  1. 개방 유튜브 응용하는
  2. 연결이 끊어 일부 YouTube 동영상을 재생 연결 deviced하지 얻을 :

    그러나 나는 그것을두고 어떻게 알고는 여기에 내가 startSession 다시 결코 전에 내가 한 것입니다 그러면 Chromecast가 시작 페이지로 돌아옵니다.

그래서 여기에 무슨 일이 일어나는지 알 수없는 사람이 있습니까? 다시 빌드 비디오 응용 프로그램을 여는 방법?

덧붙여서, 시작 페이지로 돌아온 직후, 내 chromecast가 시스템 업데이트를 얻습니다. google 업데이트로 인해 startSession()이 실패하는 경우 모르겠습니다.

아래 코드는 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

자신의 앱 ID와 수신자를 사용해야합니다. Google의 기본 수신자는 더 이상 비디오 스트림을 재생하지 않습니다. 이제는 Chrome 탭 미러링 만 처리합니다.

+0

인수없이 startSession()이 Chromecast 기기에서 현재 실행중인 앱과 세션을 만듦, 더 이상 새로운 애플리케이션을 시작할 수없는 것 같습니다. – henry74918