WPFとMediaElementを使用してメディアプレーヤーを作成しています。いくつかのオーディオトラックがあるビデオを再生していました。しかし、彼らは両方とも同時に遊んでいます:(
それらの1つを再生するにはどうすればよいですか?それは可能ですか?
WPFとMediaElementを使用してメディアプレーヤーを作成しています。いくつかのオーディオトラックがあるビデオを再生していました。しかし、彼らは両方とも同時に遊んでいます:(
それらの1つを再生するにはどうすればよいですか?それは可能ですか?
この問題は、使用しているオーディオとビデオのDirectShowコーデックにあると思います。Windows Media Playerでビデオを正しく再生できますか?いいえの場合は、適切なコーデックを再インストールしてください。
数か月前、多言語ソフトウェアでビデオヘルプを表示するためにオーディオトラックを切り替える要件のプロトタイプを完全に作成しました。私の経験はいくつかの選択肢を示しています:
WinFormsホストを介してWMPコントロールを使用し、次のように言語を変更します。
var control =((IWMPControls3)wmpControl.Ctlcontrols);
control.currentAudioLanguage = 9; // 英語
ここで見つけることができるLCIDの完全なリスト。ビデオ内のすべてのオーディオトラックを一覧表示するには、次のようなものを使用できます。
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));
}
}
};
これがソリューションの選択に役立つことを願っています。
WPFMediaElementでは不可能です。DirectShowのノウハウがある場合は、私のWPF MediaKitを試して、MediaUriElement / Playerを変更するか、独自のノウハウを作成することができます。