2012-04-28 2 views
3

Java 라이브러리 Cling을 사용하여 upnp를 사용하여 LAN에서 내 TV를 찾을 수 있습니다. TV가 다음과 같은 UPnP를 서비스upnp/dlna에서 TV 식별

  • RenderingControl
  • AVTransport을 광고하는
  • 은 ConnectionManager

그것은 또한 유형 "미디어 렌더러"이며 모델 설명은 "삼성 TV DMR"입니다 말했다.

내가 이해하는 한, 이러한 모든 기능은 예를 들어 컴퓨터에 의해 제공 될 수도 있습니다. 그러나 "진정한"세계에서 TV와 컴퓨터는 서로 다른 두 가지입니다 (동일한 서비스를 제공 할 수도 있음).

upnp 메서드를 통해 내가 "TV"와 대화하고 있음을 고유하게 식별 할 수 있습니까?

+0

http://upnp.org/specs/av/av4/를 참조하십시오. 왜 이렇게해야하는지 궁금합니다. TV와 컴퓨터가 동일한 서비스를 제공한다면 UPnP 제어점에 관한 한 본질적으로 동일합니다. 왜 그것들을 구별해야합니까? – simonc

+0

TV가 켜져 있는지 여부와 상관없이 집에서 물건을 자동으로 바꾸는 것과 같은 정보를 사용하고 싶습니다.하지만 PC가 켜져있을 때 (다른 사용 상황)에는 반응하지 않아야합니다. 가능한 경우 내 특정 TV에만 적용 할 수있는 휴대용 솔루션으로 만들고 싶습니다. – Philipp

답변

1

내가 "이식성"을 위해 제시 할 수있는 유일한 해결책은 고유 ID (UUID)에 따라 장치를 허용 목록으로 만드는 것입니다. 특정 장치의 모양을 청취하는 컨트롤러를 구현하려는 경우 장치의 UUID를 가져 와서 컨트롤러를 구성하십시오. 컨트롤러에 UI가있는 경우 검색된 모든 장치를 표시하고 사용자에게 "이것이 TV입니까?"라고 물어보십시오. 나는 UPnP에서 특정한 UPnP 장치가 "TV"라는 결정 론적 방법이 없다고 감히 말한다. UPnP는 이러한 장치 클래스를 지정하지 않습니다. 서비스 관찰은 절대적으로 정확하며 컴퓨터뿐만 아니라 DVD 플레이어 또는 스마트 알람 시계에서도 동일한 대응을 얻을 수 있습니다.

2

서비스 설명 파일 (SCPD)을 자세히 살펴 보는 것이 좋습니다.

상태 변수가 RenderingControl 인 경우 TV는 일반적으로 ContrastBrightness이지만 PC DLNA 장치는 일반적으로 사용하지 않습니다.

서비스를 사용하면 다른 오디오 장치와 TV를 구별하는 데 사용할 수있는 가능한 미디어 형식 목록을 얻을 수 있습니다.

당신은 아마 특정 제조사/모델 장치 XML을 구문 분석하여이 작업을 수행해야합니다

+0

좋은 지적. 이 프로젝트로 돌아 가면, 내가 가지고있는 TV를위한 좋은 솔루션인지 여부를 점검 할 것입니다. – Philipp