2014-07-08 11 views
1

먼저 내 문법에 대해 사과드립니다.Nexus 10 (스테이지 플라이어 1.2)가 장착 된 미라 캐스트 : 505 RTSP 버전이 지원되지 않습니다.

싱크 장치에서 미라 캐스트 응용 프로그램을 개발하려고합니다. Nexus 10 (또한 Nexus 4, HTC One ...)과 같은 무대 장치를 기반으로하지 않는 일부 Android 휴대 전화 (LG G, Asus ...)로 끝났습니다.

WFD 세션을 설정할 때 Nexus 10에 다음과 같이 표시됩니다. M3 메시지에 응답 한 후 "RTSP/1.0 505 RTSP 버전이 지원되지 않음"이라고 표시됩니다. 내가 봤 거든 문제는 소스 장치가 메시지 응답에서 "RTSP/1.0"을 찾을 수 없다는 것을 알고 있습니다. RTSP_VERSION을 정의하고 모든 메시지에 사용합니다 (M1 및 M2 포함).

#define RTSP_VERSION "RTSP/1.0" 

그리고 질문은 다음과 같습니다. 전화가 그와 같은 대답을하는 이유는 무엇입니까 (오류 505)? 문제 해결을위한 제안 사항이 있습니까?

같은 RTSP 메시지 로그보기 :

!!! 
OPTIONS * RTSP/1.0 
Date: Wed, 02 Jul 2014 08:21:50 +0000 
Server: stagefright/1.2 (Linux;Android 4.4.4) 
CSeq: 1 
Require: org.wfa.wfd1.0 

!!! 
*** 
RTSP/1.0 200 OK 
CSeq: 1 
Public: org.wfa.wfd1.0, GET_PARAMETER, SET_PARAMETER 

*** 
*** 
OPTIONS * RTSP/1.0 
CSeq: 0 
Require: org.wfa.wfd1.0 

*** 
!!! 
RTSP/1.0 200 OK 
Date: Wed, 02 Jul 2014 08:21:50 +0000 
Server: stagefright/1.2 (Linux;Android 4.4.4) 
CSeq: 0 
Public: org.wfa.wfd1.0, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER 

!!! 
!!! 
GET_PARAMETER rtsp://localhost/wfd1.0 RTSP/1.0 
Date: Wed, 02 Jul 2014 08:21:50 +0000 
Server: stagefright/1.2 (Linux;Android 4.4.4) 
CSeq: 2 
Content-Type: text/parameters 
Content-Length: 83 

wfd_audio_codecs: 
wfd_video_formats: 
wfd_content_protection: 
wfd_client_rtp_ports 
*** 
RTSP/1.0 200 OK 
CSeq: 2 
Content-Type: text/parameters 
Content-Length: 210 

wfd_audio_codecs: AAC 00000001 00 
wfd_video_formats: 28 00 02 02 00000020 00000000 00000000 00 0000 0000 00 none none 
wfd_content_protection: none 
wfd_client_rtp_ports: RTP/AVP/UDP;unicast 6500 0 mode=play 
!!! 
SET_PARAMETER rtsp://localhost/wfd1.0 RTSP/1.0 
Date: Wed, 02 Jul 2014 08:21:50 +0000 
Server: stagefright/1.2 (Linux;Android 4.4.4) 
CSeq: 3 
Content-Type: text/parameters 
Content-Length: 246 

wfd_video_formats: 00 00 02 02 00000020 00000000 0000 
<missing log but don't care about that, it's fine> 
*** 
RTSP/1.0 200 OK 
CSeq: 3 

*** 
!!! 
RTSP/1.0 505 RTSP Version not supported 
Date: Wed, 02 Jul 2014 08:21:50 +0000 
Server: stagefright/1.2 (Linux;Android 4.4.4) 
CSeq: 3 

!!! 

##MIRA Break!!!! 

##MIRA EndClient!!! 

답변

0

당신이 onReceiveClientData에서 here로오고보고 오류. 제어가 여기에 오기 때문에 응답이 RTSP으로 시작하지 않는 것이 분명합니다. 응답 문자열에 오타 나 공백이 있는지 확인하십시오.

+0

감사합니다. 답변을 이해하지만 M4 (CSeq : 3)에서 오류가 발생합니다. 응답 문자열은 다음과 같습니다. ** snprintf (res, MESSAGE_BUFF_LEN, "% s RTSP_VERSION, CSeq_Source); ** 그리고 내 코드는 LG G, Zenfone, Sony Z ..와 같은 일부 휴대폰에서 오류없이 작동했습니다. – heinekenB

+0

@heinekenB .. 실험으로'RTSP/1.0' 문자열을'RTSP_VERSION' 대신'snprintf' 문에 하드 코딩 해주십시오. 그게 도움이 되니? – Ganesh

+0

Ganesh에게 감사드립니다. 하드 코드는 이전에 시도한 여러 가지 방법 중 첫 번째지만 다른 점은 없습니다. 새로운 정보를 얻으려면 Nexus 4 (4.3)에서 M4에서 __RTSP/1.0 400 Bad Request__을 말하지만 계속 M5를 보내주십시오. 그러나, PLAY 명령 후에 TEARDOWN을 트리거하도록 요청합니다 ??? – heinekenB

0

심지어 같은 문제에 직면했습니다. 잘못된 콘텐츠 길이 값 때문입니다. GET_PARAMETER 요청에 회신하는 동안210 대신 211 시도하십시오