Cast 동반자 라이브러리를 사용하여 Chromecast에서 동영상을 스트리밍하는 간단한 앱을 만들려고합니다.CastMonitor 라이브러리에서 RemoteMediaPlayer 미디어 상태가 null입니다.
내가하고있는 일은 꽤 간단합니다.
private VideoCastManager mVideoCastManager;
@Override
protected void onCreate(Bundle savedInstanceState)
{
mVideoCastManager = CastHelper.getVideoCastManager(this);
}
그리고 하나의 방법으로 CastHelper
라는 클래스 : 는 다음 코드와 활동이 내가 응용 프로그램을 실행하면
private static final String APPLICATION_ID = CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID;
private static VideoCastManager mCastMgr;
public static VideoCastManager getVideoCastManager(Context ctx)
{
if (mCastMgr == null)
{
mCastMgr = VideoCastManager.initialize(ctx, APPLICATION_ID, null, null);
mCastMgr.enableFeatures(VideoCastManager.FEATURE_NOTIFICATION
| VideoCastManager.FEATURE_DEBUGGING);
}
mCastMgr.setContext(ctx);
return mCastMgr;
}
, 내가 액션 바에서 미디어 버튼을, 그리고 장치를 선택할 수 있습니다.
03-26 19:18:47.890: D/ccl_VideoCastManager(9874): Registering MediaChannel namespace
03-26 19:18:47.900: D/ccl_VideoCastManager(9874): onApplicationStatusChanged() reached: Ready To Cast
03-26 19:18:50.203: D/ccl_VideoCastManager(9874): RemoteMediaPlayer::onStatusUpdated() is reached
03-26 19:18:50.203: D/ccl_VideoCastManager(9874): onRemoteMediaPlayerStatusUpdated() reached
03-26 19:18:50.203: D/ccl_VideoCastManager(9874): mApiClient or mRemoteMediaPlayer is null, so will not proceed
사실 문제가 그 블록에 있습니다 : : 그러나, 나는 오류가
if (null == mApiClient || null == mRemoteMediaPlayer ||
null == mRemoteMediaPlayer.getMediaStatus()) {
LOGD(TAG, "mApiClient or mRemoteMediaPlayer is null, so will not proceed");
return;
}
RemoteMediaPlayer 인스턴스 괜찮를하지만, getMediaStatus
메소드는 null를 돌려줍니다. 미디어를 아직로드하고 있지 않습니다.
내가 뭘 잘못하고 있니?
편집 으로 내가 onApplicationConnected
가 호출되지 않은 VideoCastConsumerImpl
를 추가 할 때 어쩌면이 코드는 아무 문제가 없지만, 알리 Naddaf에 의해 지적했다, 그래서 나는 이유가 될 수있다 생각했다.
IVideoCastConsumer mCastConsumer = new VideoCastConsumerImpl()
{
@Override
public void onConnected()
{
super.onConnected();
}
@Override
public void onApplicationConnected(ApplicationMetadata appMetadata, String sessionId, boolean wasLaunched)
{
super.onApplicationConnected(appMetadata, sessionId, wasLaunched);
//Trying to load a media here, but never called
}
};
mVideoCastManager.addBaseCastConsumer(mCastConsumer);
그게 문제였습니다. 이제 작동합니다. 감사! – Aerilys