나는 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()
에서 온다 항상있다 시간 나는 비디오 재생 애플 리케이션에있어, 나는 며칠 동안 떠나지 않는다.
- 개방 유튜브 응용하는
- 는
- 연결이 끊어 일부 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();
}
인수없이 startSession()이 Chromecast 기기에서 현재 실행중인 앱과 세션을 만듦, 더 이상 새로운 애플리케이션을 시작할 수없는 것 같습니다. – henry74918