2013-10-06 3 views
1

iPush Renderer device을 제어 할 DLNA 컨트롤러를 설정하려고합니다. iPush Renderer device은 많은 아이폰 DLNA 컨트롤러와 심지어 네이티브 Airplay와 마찬가지로 완벽하게 잘 작동합니다. 거의 모든 비디오 파일 형식을 지원합니다. 내 DLNA 컨트롤러 여기까지 (WDTV, Intels Media Renderer, XBox360 및 다른 많은 iphone 렌더러) 테스트 한 모든 장치와 함께 작동합니다. iPush Renderer device. 내가 UPNPLid.dll [UPnP를 1.0 형식 라이브러리 (제어 포인트)]를 사용할 때 내가 얻을 iPush의 서비스를 통해 반복 할 때DLNA 렌더러가 COMException (0x80040501)을 던지고 있습니다.

, 나는 "는 iPush

UPnPDeviceFinder finder = new UPnPDeviceFinder(); 
UPnPDevices devs = finder.FindByType(type, 0); 

다음을 포함한 모든 렌더러를 얻을 수 COMException (0x80040501) "

foreach (var service in device.Services) {//get the right service} 

나는 Intels Device Spy 및 Intels Media Controller를 사용하여 iPush에 푸시하려고했습니다. Play가 실행되면, iPush는 로딩 화면을 영원히 보여줍니다. iPush는 내가 테스트 한 모든 아이폰 컨트롤러와 완벽하게 작동합니다.
인터넷에서이 오류를 확인한 후에 WMP와 xBox에 관한 similar 질문을 보았습니다.이 예외는 있지만 대답은 없었습니다.

답변

1

0x80040501은 UPNP_E_EVENT_SUBSCRIPTION_FAILED으로 렌더러가 컨트롤러 요청을 이해하지 못함을 나타냅니다. 불행하게도이 특정 Windows API는 심각하게 문서화되지 않았습니다. Wireshark를 사용하고 iWhatever에서 초기 핸드 셰이크를 캡처하고 구현과 동일한 트래픽을 비교하는 것이 좋습니다. 구현을 캡처하면 iDevice에서 더 많은 설명 오류가 나타납니다. 결국 SOAP입니다. 나는 그 iDevices가 독점적 인 것들을한다는 것을 알면 놀라지 않을 것입니다. 인텔의 UPnP 제품군은 레퍼런스 구현이므로, 작동하지 않는다면 문제가 생길 수 있습니다. 비록 내가 이해한다면, 인텔은 가입 및 열거에 대한 문제가 아니라 실제 운영의 후반 단계에 있습니다. 그러나 어쨌든 Wireshark는 지금 당신의 친구입니다. 하드웨어 장치로 DLNA를 작동시키는 것은 패킷 캡처의 끝없는 추구입니다.

이 링크도 도움이 될 수 있습니다 : http://www.archivum.info/microsoft.public.upnp/2007-08/00009/Device-gt-get_Service-failed.html

면책 조항 : 나는 윈도우의 UPnP API, 덜 C 번호와 특별한 친구가 아니야. 나는 C++에서 UPnP로 많은 일을하곤했습니다.

관련 문제