2014-11-17 7 views
1

OS와 네트워크에서 프로그램 파일 : 윈도우 8.1
앱 : 윈도우 미디어 플레이어 12
IDE : 비주얼 스튜디오 2012로드 비디오 AxWindowsMediaPlayer

나는 다른 컴퓨터에서 서버 응용 프로그램에 연결하는 C#을 클라이언트 응용 프로그램이 . 서버 응용 프로그램은 원격 시스템에서 실행중인 http 서버를 통해 호스팅되는 비디오 파일의 이름을 클라이언트 응용 프로그램에 제공합니다. 그러면 클라이언트는 원격 비디오 파일을로드하고 재생해야합니다. 따라서 온라인에서 찾은 모든 예제 튜토리얼과 달리 사용자는 FileDialogBox를 열지 않아도 파일을 선택할 수 있습니다. 파일 이름은 런타임에 코드를 통해 제공됩니다.

클라이언트 응용 프로그램은 Winforms를 사용하므로이 작업을 수행하기 위해 AxWindowsMediaPlayer 컨트롤을 사용하고 있습니다. 문제는 제공된 URL에서 파일을로드 할 수없는 것 같습니다.

는 예를 들어, 나는이 코드 줄이 있습니다

'윈도우 미디어 플레이어 파일을 찾을 수 없습니다 :

this.axWindowsMediaPlayer.URL = "http://192.168.10.100:80/testVideo1.mp4"; 

나는 그것을이 오류를 얻을 수 있음을 실행

. 보관함에있는 항목을 재생, 굽거나 동기화하려는 경우 해당 항목은 이동되었거나 이름이 변경되었거나 삭제 된 파일을 가리킬 수 있습니다. '

그러나 동일한 URL을 브라우저 창에 꽂으면 파일이 올바르게로드되고 아무 문제없이 동영상이 재생됩니다. 내가 로컬 클라이언트 시스템에서 작업 디렉토리에 testVideo1.mp4를 복사하고 이와 같은 코드에서 파일을로드 할 경우에도 :

this.axWindowsMediaPlayer.URL = "testVideo1.mp4"; 

글쎄, 그 코드가 작동하고 영상이 재생됩니다. 따라서 파일이 로컬 인 경우 비디오를 컨트롤에서 재생할 수 있기 때문에 코덱 문제가 아닌 것으로 알고 있습니다. 그리고 브라우저에서 작동하기 때문에 잘못된 URL을 사용하는 것이 문제가되지 않는다는 것을 알고 있습니다.

Windows Media Player가 http 요청을 보내지 않으므로 http 서버가 처리하여 올바른 폴더로 전달할 수 있습니까? AxWindowsMediaPlayer를 통해 원격 파일을로드하는 방법이 있습니까? 차라리 로컬 폴더에 파일을 다운로드하지 않아도됩니다.

답변

0

URL을 웹 사이트에 전달하는 대신 HTTP 웹 사이트에서 URL을 다운로드 한 다음 임시 로컬 파일에 저장하도록 프로그램을 가져옵니다. 해당 로컬 파일의 경로를 AxWindowsMediaPlayer에 전달하십시오.

+0

그래, 이미 임시 조치로하고 있지만, 내가 요청한 것이 아닙니다. 사실, 나는 특별히 그렇게하고 싶지 않다고 말했다. –

+0

192.168.10.100의 HTTP 서버가 실행 중입니까? 그런 경우 작동하는지 확인하고 브라우저에서 testVideo1.mp4에 액세스 할 수 있습니다. – ThePyroEagle