2015-01-26 1 views
0

동등한 장치를 전송하기 위해 CCL (Cast Companion Library)을 사용하여 원격으로 비디오를 재생하는 응용 프로그램을 만들었습니다. 모든 일을 찾을 수 있지만 비디오 파일을 변경할 수 있어야하며 작업을 중단하고 다시 시작하지 않아야합니다.활동을 다시 시작하지 않고 동반자 라이브러리 전송 비디오를 변경 하시겠습니까?

동일한 인터페이스를 구현하는 VideoCastControllerActivity의 사용자 지정 버전을 구현했지만 CCL과 함께 제공되는 VideoCastControllerFragment를 다시 사용하고 있습니다. 한 가지 문제는 VideoCastControllerFragment가 비디오 파일의 끝에 도달했을 때 특별한주의를주지 않는다는 것입니다. 그것은 IVideoCastController 인터페이스에서 closeActivity()를 호출함으로써 다소 수행되므로 다음 비디오 파일을로드 할시기를 알기 위해 해당 이벤트를 사용하려고했습니다. 그러나

getCastManager().loadMedia(mSelectedMedia, autoPlay, position); 

를 호출하지만, 다른 통화의 결과는 재생 목록이 끝날 때까지 활동과 루프를 닫을 것을 수행하여 다음 비디오 파일을로드하는 것은 모든 비디오를 재생하지 않고 도달.

내 자신의 VideoCastControllerFragment를 다시 작성하지 않고도이 문제를 해결할 수있는 다른 방법이 있습니까?

답변

1

첫 번째 질문 (또는 관찰)에 대답하려면 VideoCastControllerActivity 구현에서 다양한 콜백 이벤트를 직접들을 수 있습니다. VideoCastManager에 대한 액세스 권한이 있으므로 미디어 상태가 IDLE로 전환 된시기와 이유를 알 수 있습니다. 그 외에도 발신자에 재생 목록 기능을 구현하려고하는 중일 것입니다. 이때 수신자가 올바른 위치에 있어야합니다 (즉, 맞춤 수신기를 작성해야합니다). 재생 목록 지식/논리가 휴대 전화에있는 경우 모든 것이 휴대 전화에 종속되므로 잠자기 모드로 전환하면 크롬 케스트는 무엇을해야할지 모릅니다. 또한 두 번째 장치가 동일한 전송 장치에 연결되면 재생 목록 등을 올바르게 반영 할 수 없습니다. 따라서 전화 장치는 사용자가 재생 목록을 만들도록 허용 한 다음 해당 재생 목록에 대한 정보를 사용자 지정 수신기 및 커스텀 리시버는 큐에서 재생을 처리해야하며 발신자는 다음/prev로 이동하기 위해 사용자 정의 메시지를 보낼 수 있어야합니다. 그러면 리시버가 그에 따라 올바른 작업을 수행해야합니다. 리시버에서 비디오 재생 목록을 만드는 방법을 보여주는 GitHub 레포에는 매우 기초적인 sample이 있습니다.

+0

나는 재생 목록뿐만 아니라 캐스팅하는 장치에 대한 의존성이 적어 지도록 수신자 측이 필요한 다른 기능을 장기간 사용하는 것이 좋을 것이라고 생각합니다. 저는 수면 문제에 대해 알고 있습니다. (이벤트를 듣고 처리 할 수있는 서비스로 해결할 수있었습니다.) 발신자가 다음 동영상을 재생할 수 있습니까? 귀하의 의견을 보내 주셔서 감사합니다. – startoftext

+0

또한 단순히 단일 비디오를 재생하는 것보다 더 복잡한 무언가에 대해 CCL을 사용하지 않고 CCL을 참조로 사용해야합니까? CCL처럼 느껴지기 시작하면 캐스트의 간단한 사용 사례에 적합하지만 더 복잡한 유스 케이스의 경우 훨씬 더 자주 사용하려고하는 것처럼 느껴지기도합니다. – startoftext

+1

CCL은 라이브러리로서 Android 발신자 또는 수신자의 현재 SDK에서 지원하지 않는 API를 포함 할 수 없습니다. 예를 들어 현재 재생 목록을 처리 할 API가 수신자 측에 없다면 수신자가 API 호출을 처리 할 수있는 표준 API가 없기 때문에 CCL이 자체 api를 추가하지 못하고 CCL이 제공하지 않을 것입니다 수신기도. –