我尝试播放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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我希望有人在发布时回复了这个问题.我花了很多时间来弄清楚为什么我无法通过设置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属性; 但那也没有帮助.它真的必须来自事件处理程序之外!
| 归档时间: |
|
| 查看次数: |
7620 次 |
| 最近记录: |