gpt4 book ai didi

c# - 使用 axWindowsMediaPlayer 播放两个视频

转载 作者:太空狗 更新时间:2023-10-29 23:01:41 24 4
gpt4 key购买 nike

我尝试播放 jpg(循环),点击 mp4 结束后应该播放,jpg 应该再次播放。我不知道为什么,但在我玩完 axWindowsMediaPlayer1_PlayStateChange vido 后就停止了。帮助。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Video
{
public partial class Form1 : Form
{
bool clicked = false;
public Form1()
{
InitializeComponent();
axWindowsMediaPlayer1.URL = "wait2.JPG";

}



private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded & clicked== true)
{
clicked = false;
axWindowsMediaPlayer1.settings.setMode("Loop", true);
axWindowsMediaPlayer1.URL = "wait2.JPG";
axWindowsMediaPlayer1.Ctlcontrols.play();

}

}

private void axWindowsMediaPlayer1_ClickEvent(object sender, AxWMPLib._WMPOCXEvents_ClickEvent e)
{
axWindowsMediaPlayer1.settings.setMode("Loop", false);
axWindowsMediaPlayer1.URL = "video.MP4";
axWindowsMediaPlayer1.Ctlcontrols.play();
clicked = true;
}


}
}

最佳答案

我希望有人在发布时回答了这个问题。我花了很多时间才弄清楚为什么我无法通过设置 URL 属性来开始新视频。我终于在这里找到了这个问题的答案:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd562470%28v=vs.85%29.aspx

问题在于从 axWindowsMediaPlayer1_PlayStateChange() 事件处理程序中设置 URL 属性。根据上面的msdn文档:

“不要从事件处理程序代码调用此方法。从事件处理程序调用 URL 可能会产生意外结果。”

因此必须在偶数处理程序之外设置 URL 属性。我还尝试了 Dispatcher.Invoke() 甚至从事件处理程序中启动一个新线程来设置 URL 属性;但这也无济于事。它真的必须来自事件处理程序之外!

关于c# - 使用 axWindowsMediaPlayer 播放两个视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com