C#将WMP动态添加到表单(当前:音频播放,不显示视频)
我正在尝试动态加载WindowsMediaPlayer控件,但无法使其正常工作 代码按原样显示,似乎播放音频(可能还有视频),但不在窗体上显示视频。表单保持空白,音频正在播放。(播放WVM文件,不能是编码器问题)我正在导入WMPLibC#将WMP动态添加到表单(当前:音频播放,不显示视频),c#,windows-media-player,C#,Windows Media Player,我正在尝试动态加载WindowsMediaPlayer控件,但无法使其正常工作 代码按原样显示,似乎播放音频(可能还有视频),但不在窗体上显示视频。表单保持空白,音频正在播放。(播放WVM文件,不能是编码器问题)我正在导入WMPLib WindowsMediaPlayer videoPlayer; public void createContent(Form form) { PlayFile("F:\\Videos\\CantTouchThis.wmv");
WindowsMediaPlayer videoPlayer;
public void createContent(Form form) {
PlayFile("F:\\Videos\\CantTouchThis.wmv");
}
private void PlayFile(string url) {
videoPlayer = new WindowsMediaPlayer();
videoPlayer.PlayStateChange +=
new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
videoPlayer.MediaError +=
new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError);
videoPlayer.URL = url;
videoPlayer.controls.play();
}
private void Player_PlayStateChange(int NewState) {
if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped) {
}
}
private void Player_MediaError(object pMediaObject) {
MessageBox.Show("Cannot play media file.");
}
我们将非常感谢您的帮助。我已经找到了解决方案。这是为将来需要它的人准备的。 代码是: 私有静态AxWMPLib.AxWindowsMediaPlayer wmPlayer
public static void AddMediaPlayer(Form form1) {
Button b1 = new Button();
b1.Text = "Button";
try {
wmPlayer = new AxWMPLib.AxWindowsMediaPlayer();
((System.ComponentModel.ISupportInitialize)(wmPlayer)).BeginInit();
wmPlayer.Name = "wmPlayer";
wmPlayer.Enabled = true;
wmPlayer.Dock = System.Windows.Forms.DockStyle.Fill;
form1.Controls.Add(wmPlayer);
((System.ComponentModel.ISupportInitialize)(wmPlayer)).EndInit();
// After initialization you can customize the Media Player
wmPlayer.uiMode = "none";
wmPlayer.URL = @"C:\ProjectSilver\assets\RadarDetectie\general\inlog_confirm.ogv";
wmPlayer.Ctlcontrols.play();
}
catch { }
不要忘记导入库AxWMPLib。
在此之后,您需要在类的顶部添加[StatThread],否则会出现异常
祝你好运 顺便说一句:尝试像这样将其添加到表单:form.controls.add(videoPlayer);给出一个参数异常错误。