저는 비디오 podcast에 대한 지원을 미디어 브라우저에 추가하는 데 정말로 관심이있었습니다.TCP 소켓을 사용하여 로컬에서 비디오 프록 싱
사용자가 사용 가능한 비디오 Podcast를 탐색하여 인터넷에서 스트리밍 할 수있게하고 싶습니다. 미디어 플레이어 등이 클라우드에있는 파일을 행복하게 재생할 수있는 이유는 간단합니다.
문제는 이러한 파일을 로컬로 캐시하여 동일한 에피소드의 후속보기가 스트리밍을 포함하지 않고 대신 로컬 파일을 재생한다는 것입니다.
그래서 ... HttpListener
을 호스트하지 말고 미디어 플레이어가 파일의 일부를 요청하면 HttpListener
을 로컬로 다운로드하여 저장해야합니다. 다음에 사용자가 파일을 재생하면 이미 파일의 일부가 로컬에 저장됩니다.
누구든지 프록시 용으로 HttpListener
을 사용하는 예제 코드를 알고 있습니까?
편집
아이디어는 MP3 또는 mov 인 같은 프록시 간단한 스트리밍 콘텐츠에 대한 것입니다. 현상금은 실제 구현으로 이동합니다. 여기
는 API입니다 내가 좋아하는 것 :// will proxy a uri on the local port, if cacheFile exists it will resume the
// download from cacheFile.
// while the file is downloading it will be name cacheFile.partial, after the
// download is complete the file will be renamed to cacheFile.
// Example usage: ProxyFile("http://media.railscasts.com/videos/176_searchlogic.mov", 8000, @"c:\downloads\railscasts\176_searchlogic.mov")
//
// Directly after this call http://localhost:8000 will be the proxy stream, it will be playable locally.
void ProxyUri(Uri uri, int port, string cacheFile)
편집 2
HttpListener
꽤 가망 찾고 HttpListener
의가 보인다 나는 아마 TCP 소켓 수준에서 작업을 수행해야합니다 프로그램이 정말 까다로울 수있는 관리자로 실행되도록 요구합니다.
구현을 제공하기 전에 ... 요구 사항을 명확히하고 싶습니다. 프록 싱뿐만 아니라 다운로드하는 콘텐츠의 캐싱을 제공하여 사용자가 놀고 싶어 할 때마다 콘텐츠를 왕복 할 필요가없는 것처럼 들리지만 ... 맞습니까? –
@ Justin, 예, 완전히 api로 확장됩니다. –
본인의 답변을 요지로 연결되는 링크로 업데이트했습니다. –