2015-01-05 2 views
1

chromecast 앱에서 작업하고 있는데 앱을 디버깅하는 동안 문제가 발생했습니다.Chromecast API - 상태 업데이트에서 콜백 지연 문제가 발생했습니다.

특정 시간에 일정을 예약하면 해당 이벤트는 chromecast에 약간의 지연이 적용되며 상태 업데이트 청취자에게 약 600 밀리 초 늦게 알려주고 있습니다.

1.Suppose 우리가 00에서 이벤트 : 21 : 33 : 400 '(HH : MM : SS : MS), 우리가 이벤트를 트리거 할 때 정확히

내가 예와 함께 설명하게 특정 시간에 이 인 Chromecast (약 600 밀리 초)의 후반에 적용되어 정확한 이벤트 시간 인 전에 600 밀리 초의 이벤트 신호를 트리거하는 이유가 관찰되었습니다.

2. 또한 이벤트가 적용될 때 크롬 케스트 기기가 미디어 상태 업데이트를 매우 늦게 알리는 (즉, 'StatusUpdate'콜백 콜백을 트리거하지 않음) 것으로 나타났습니다. 이 앱으로 인해 다음 이벤트 시작 시간보다 큰 스트리밍 위치로 chromecast가 업데이트되는 경우 연속 이벤트를 예약 할 수 없습니다. 다음 이벤트가 '00 : 21 : 34 : 100 '시간에 있고 스트리밍 위치'00 : 21 : 34 : 300 '으로 신고 된 경우 에이 앱에서 이벤트 및 일정을 무시합니다/ 연속 된 이벤트가 '00 : 21 : 34 : 300 '스트리밍 위치보다 큽니다.

이 문제를 해결하기 위해 많은 노력을 기울였습니다. 제발 도와주세요.

+0

(1)의 경우 이벤트가 트리거 된 후 어떤 유형의 동작이 발생해야합니까? 리시버에 로깅 정보를 추가하여 다른 작업 시간을 측정하여 시간을 어디에서 보내고 있는지 확인할 수 있습니다. 그것은 당신의 수신자이므로, 우리는 실제로 어떤 일이 일어나고 있는지 알 수 없습니다. (2)에 관해서는, 귀하의 신청서에 대해 예상되는 시간 해상도는 어떻습니까? –

+0

사실 저는 (CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID를 사용하여) 비디오를 재생하기 위해 기본 수신기 응용 프로그램을 사용하고 있습니다. (1) 내 주된 의도는 특정 주어진 타임 코드에서 뮤트/뮤트 해제 이벤트를 적용하는 것입니다. 발신자 응용 프로그램은 음소거/음소거 해제 메시지를 전송하지만 아주 늦게 적용됩니다. (2) 어떤 이벤트 (음소거/음소거 해제)가 chromecast 장치에서 실행될 때, 내 보낸 응용 프로그램은 StatusUpdateListener에 즉각 적용될 다음 이벤트를 예약하고있는 곳으로 통보되어야합니다. 그러나 StatusUpdateListener는 이벤트가 실행 된 후 매우 늦게 호출됩니다. –

+0

당신은 어떤 종류의 해결책을 찾고 있는지 언급하지 않았습니다. "즉시"여기에는별로 의미가 없습니다. –

답변

0

마지막으로 내 문제를 해결했습니다.

스타일 리시버의 로그를 디버깅하여 위의 문제를 확인하고 지연이 없음을 확인했습니다.

대신 발신자 응용 프로그램에서 현재 미디어 스트리밍 위치를 얻는 데 다른 방법을 사용했습니다.

즉 'mRemoteMediaPlayer.getApproximateStreamPosition()'- 포 그라운드와 배경 모두에서 정확한 스트리밍 위치를 제공합니다.

반면에 나는 'mediaStatus.getStreamPosition()'메서드를 사용했지만, 때로는 부정확 한 스트리밍 위치를 제공하기도합니다.