2011-08-21 19 views
9

나는 미디어 파일을 스트리밍하는 WCF 서비스를 작성했습니다. 이 서비스를 사용하는 WPF 응용 프로그램을 작성 중이며 MediaElement에서 Stream 개체를 입력 속성의 입력 매개 변수로 사용할 수 없다는 것을 알았습니다.WPF로 스트리밍 비디오 재생

저는 지난 2 일 동안 끊임없이 인터넷 검색을 해왔으며 WPF, VLC ActiveX 컨트롤, VideoRendererElement 및 WPFMediaKit 내부의 Silverlight 뷰포트를 포함한 여러 가지 대안을 살펴 보았습니다. 불행히도 나는 문서 및/또는 예제가 부족하여 방해를 받았으며 지금까지 아무런 진전을 이루지 못했습니다. WPF를 사용하고있는 것은 이번이 처음이라는 사실도 도움이되지 않습니다.

간단히 말해서, 내가 찾고있는 것은 WPF에서 스트리밍을 시연하는 설명서 또는 예제와 함께 제공되며 가능하면 구현하기도 쉽습니다. 이 솔루션은 완벽 할 필요는 없습니다. 필요한 것은 작동하는 것입니다.

답변

5

HttpListener을 WPF 앱에 호스팅하고 HttpListener에서 MediaElement.Source까지 제공되는 URL을 통해 WCF 서비스에서받는 스트림을 제공 할 수 있습니다.

다른 옵션 (당신이 그들을 배제 것 같다 비록) :

이 당신을 위해 옵션 인 경우, 확실하지하지만 상용 라이브러리가있다 WPF에서 스트림의 비디오 재생을 포함한 멀티미디어 :

+0

WCF 서비스는 TCP 바인딩을 사용하고, 예를 들면 다음과 같습니다

은 여기에 (-> 읽기, SetFilePointer를 - -> 탐색 CreateFile에> 복제 등 ReadFile을 파일이 바로 적절한있는 IStream 방법에 매핑 호출)이 방법을 설명 IIS 외부에서 관리되는 Windows 서비스로 실행됩니다. 내가 어떻게 든 들어오는 스트림의 URL을 가져 오기 위해 HttpListener 대신 TcpListener를 사용할 수 있습니까? – rafale

+0

WCF 서비스가 IStream을 반환한다고 가정합니다.이 가정이 사실이라면 WCF 프록시 클래스를 사용하여 스트림을 가져온 다음 해당 스트림을 내가 언급 한 라이브러리에 제공하거나 http URL에 "릴레이"합니다 내부 애플 리케이션 HttpListener와 함께 그 http URL을 사용하도록 MediaElement 말해 ... 내가 강하게 라이브러리 중 하나를 사용하는 것이 좋습니다 ... – Yahia

+0

나는 HttpListener 클래스를 사용하지 적이 전에, 그래서 내가 어떻게 스트림을 HTTP URL로 중계합니다. 너가 말하는게 이거니? 첫 번째 단계 인 http://pastebin.com/iELVyybp – rafale

0

는 pseudofiles를 사용하여이를 달성하는 방법은 파일 시스템 콜 즉 에뮬레이션있다.

경로가 전달되면 미디어 플레이어는 먼저 파일 (CreateFile이 호출 됨)을 열고 파일에서 ReadFile이 호출되면 파일 내의 위치를 ​​이동합니다 (SetFilePointer가 호출 됨).

그냥 비디오 파일 내에서 이동하고 필요한 블록을 읽습니다. http://boxedapp.com/encrypted_video_streaming.html