2010-07-12 35 views
1

我正在使用WPF和MediaElement編寫媒體播放器。 我正在播放一段視頻,我有幾個音軌。但他們都在同一時間:(WPF MediaElement,更改音軌

打我怎麼只打其中之一嗎?是不是在所有可能的?

回答

2

我認爲這個問題出在你使用的音頻和視頻DirectShow編解碼器上。你能在Windows Media Player中正確播放視頻嗎?如果不是,請重新安裝撥號編解碼器。

幾個月前我已經完全原型d要切換音軌以便在我們的多語言軟件中顯示視頻幫助。 我的經驗給出了一些選擇:

  • 使用通過的WinForms主機WMP-控制,然後更改喜歡的語言:

    功控制=((IWMPControls3)wmpControl.Ctlcontrols);
    control.currentAudioLanguage = 9; //英語

LCID的完整列表,您可以找到here。 要列出你可以使用像視頻中的所有音軌:

wmpControl.PlayStateChange += (o, args) => { 
    if(args.newState == 3) { 
    var control = ((IWMPControls3)wmpControl.Ctlcontrols); 
    for(int i = 1; i <= control.audioLanguageCount; i++) { 
     MessageBox.Show(control.getAudioLanguageID(i) + ": " + control.getAudioLanguageDescription(i)); 
    } 
    } 
}; 
  • 使用獨立的音頻軌道,並使用MediaPlayer同步播放的視頻。這種方法的主要問題是,您必須手動同步音頻和視頻播放,啓動,停止,搜索。

我希望這可以幫助您選擇您的解決方案。

+0

謝謝!這節省了我很多時間!我現在正在使用wpf的視頻幫助,因此我會嘗試使用Windows媒體播放器控件。 – 2012-06-28 11:51:00

+0

我有同樣的問題,兩個音軌同時播放。重新安裝K-Lite Codec Pack解決了我的問題。謝謝! – CodingYourLife 2013-04-29 20:22:43

0

這是不可能的WPF MediaElement的,如果你有一些DirectShow中的專有技術如何,你可以試試我的WPF MediaKit並修改MediaUriElement/Player或創建你自己的。

+0

我遇到了這篇文章,並試圖做同樣的事情。我正在使用MediaKit,但我不確定如何修改它以切換音頻流。任何細節都將不勝感激。 – thecaptain0220 2013-10-17 19:35:39