먼저 내 문법에 대해 사과드립니다.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!!!
감사합니다. 답변을 이해하지만 M4 (CSeq : 3)에서 오류가 발생합니다. 응답 문자열은 다음과 같습니다. ** snprintf (res, MESSAGE_BUFF_LEN, "% s RTSP_VERSION, CSeq_Source); ** 그리고 내 코드는 LG G, Zenfone, Sony Z ..와 같은 일부 휴대폰에서 오류없이 작동했습니다. – heinekenB
@heinekenB .. 실험으로'RTSP/1.0' 문자열을'RTSP_VERSION' 대신'snprintf' 문에 하드 코딩 해주십시오. 그게 도움이 되니? – Ganesh
Ganesh에게 감사드립니다. 하드 코드는 이전에 시도한 여러 가지 방법 중 첫 번째지만 다른 점은 없습니다. 새로운 정보를 얻으려면 Nexus 4 (4.3)에서 M4에서 __RTSP/1.0 400 Bad Request__을 말하지만 계속 M5를 보내주십시오. 그러나, PLAY 명령 후에 TEARDOWN을 트리거하도록 요청합니다 ??? – heinekenB