2015-03-02 84 views
0

我嘗試使用nvlc API來播放HTTP流,但我有以下問題:無法播放HTTP流與nvlc .NET

我可以播放本地視頻:

IMediaPlayerFactory factory = new MediaPlayerFactory(); 
IMedia media = factory.CreateMedia<IMedia>(@"C:\Videos\Movie.wmv"); 
IVideoPlayer player = factory.CreatePlayer<IVideoPlayer>(); 
player.WindowHandle = panel1.Handle; 
player.Open(media); 
player.Events.MediaEnded += new EventHandler(Events_MediaEnded); 
player.Events.TimeChanged += new EventHandler<TimeChangedEventArgs>(Events_TimeChanged); 
player.Play(); 

但不能播放HTTP流:

IMediaPlayerFactory factory = new MediaPlayerFactory(); 
IMedia media = factory.CreateMedia<IMedia>(@"http://90.189.198.75:1234/udp/233.7.70.84:5000"); 
IVideoPlayer player = factory.CreatePlayer<IVideoPlayer>(); 
player.WindowHandle = panel1.Handle; 
player.Open(media); 
player.Events.MediaEnded += new EventHandler(Events_MediaEnded); 
player.Events.TimeChanged += new EventHandler<TimeChangedEventArgs>(Events_TimeChanged); 
player.Play(); 

謝謝你的關注和你的時間!

編輯:

長搜索互聯網上的解決方案後,流突然啓動,沒有任何問題。用原來的代碼!可能probem在流,但我不知道爲什麼VLC播放器沒有問題。謝謝大家的幫助。

+0

- 會發生什麼?你看到錯誤嗎? – 2015-03-02 12:53:29

+0

是的,沒有錯誤。 – stoyanov 2015-03-02 13:06:35

+0

剛剛查看[文檔](http://www.codeproject.com/Articles/109639/nVLC) - 您是否配置了日誌記錄?可能是在那裏看 - 看起來像你需要添加一個部分到你的配置文件爲NLog – 2015-03-02 13:11:51

回答

0

這可能是也可能不是你的問題的原因...科隆:是保留字符的URL和當你說你不能打流應該被轉義

http://90.189.198.75:1234/udp/233.7.70.84%3A5000 
+0

:5000是一個流的HTTP端口,不應該轉義。 – stoyanov 2015-03-02 13:09:07

+0

是的,這部分看起來沒問題 - [代碼項目文檔](http://www.codeproject.com/Articles/109639/nVLC)有這個例子:'IMedia media = factory.CreateMedia (@「udp:/ /@172.16.10.1:19005" );'; – 2015-03-02 13:10:31

+2

好的...但這不是你的網址。您有一個HTTP網址,其中嵌入了第二個udp「url」。該流的端口是1234,***不是***端口5000.無論在90.189.198.75:1234應該unescape「嵌入」udp「url」。標準規定,HTTP URL不應該使用':'來代替端口號以外的任何內容。在這個網址中,端口號是** 1234 **。 *類似*端口的url的最後部分,不是HTTP的端口號。它只是網址的一部分,因此,在這種情況下使用冒號意味着您正在呈現一個損壞的URL。 – spender 2015-03-02 13:24:04