2016-07-12 60 views
0

我開發了一個流媒體客戶端應用程序,該應用程序必須重現由攝像頭捕獲的圖像。我的問題是,我正在觀看延遲2秒的數據流。我不知道如何控制這從我的代碼。你能幫我嗎?這裏是我的代碼:如何消除流媒體應用程序中的延遲

public Form1() 
    { 
     InitializeComponent(); 


     vlcControl1 = new Vlc.DotNet.Forms.VlcControl(); 

     this.vlcControl1.Location = new System.Drawing.Point(225, 65); 
     this.vlcControl1.Name = "vlcControl1"; 
     this.vlcControl1.Size = new System.Drawing.Size(900, 700); 
     this.vlcControl1.BackColor = System.Drawing.Color.Black; 
     this.vlcControl1.Name = "vlcControl2"; 
     this.vlcControl1.Spu = -1; 
     this.vlcControl1.TabIndex = 0; 
     this.vlcControl1.Text = "vlcControl2"; 
     this.vlcControl1.VlcMediaplayerOptions = null; 

     vlcControl1.VlcLibDirectory = new System.IO.DirectoryInfo(ConfigurationManager.AppSettings.Get("pathVLC64").ToString()); 

     this.Controls.Add(this.vlcControl1); 

     ((System.ComponentModel.ISupportInitialize)(this.vlcControl1)).EndInit(); 

    } 
string uri = ConfigurationManager.AppSettings.Get("urlVideo").ToString(); 
string[] options = { ":network-caching=1000" }; 

     vlcControl1.Play(new Uri(uri), options); 

}

我試圖改變網絡緩存參數,但它不工作。 謝謝你這麼多

回答

0

嗯,因爲你似乎明白基本不會再有代碼,我做的是:

  1. 我設置了播放器#1在不同SPU與另一
  2. 使用新的線程類同步開始。
  3. 將媒體加載到兩個播放器並向兩個線程發送同步命令。

這樣,兩個播放器的播放開始同步。另外,這樣你可以延遲或設置Thread.Sleep(2000);如果需要進一步同步。

希望這會有所幫助,如果您需要一些代碼示例,請問可以寫一些,但包括主應用程序 - >播放器#1 - >線程新類 - >播放器#2功能是相當有點代碼要粘貼的。