C# 如何在axMediaPlayer中为2部电影设置URL
我尝试在同一台axmediaplayer中播放两个视频。我的理论是:主电影将一直播放到计时器事件触发。然后播放新电影,最后一个电影位置将保存,在完成第二部电影后,最后一部电影将从最后一个电影位置继续播放 但是在完成第二部电影后,我的axmediplayer无法工作,也无法继续第一部电影 我在网上搜索,有人说这是因为从事件处理程序调用了URL。但我不知道如何修复它,如何设置它的处理器C# 如何在axMediaPlayer中为2部电影设置URL,c#,axmediaplayer,C#,Axmediaplayer,我尝试在同一台axmediaplayer中播放两个视频。我的理论是:主电影将一直播放到计时器事件触发。然后播放新电影,最后一个电影位置将保存,在完成第二部电影后,最后一部电影将从最后一个电影位置继续播放 但是在完成第二部电影后,我的axmediplayer无法工作,也无法继续第一部电影 我在网上搜索,有人说这是因为从事件处理程序调用了URL。但我不知道如何修复它,如何设置它的处理器 private void timerTeserInterval_Tick(object sender, Event
private void timerTeserInterval_Tick(object sender, EventArgs e)
{
if (this.MoviePlayerCanPlayTeaser && playerMode != PlayerMode.TeaserMode && axWindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
MoviePlayerCurrentPossition = Convert.ToInt32(axWindowsMediaPlayer.Ctlcontrols.currentPosition);
LastMovieName = MoviePathFile;
axWindowsMediaPlayer.Ctlcontrols.pause();
}
}
private void PlayMovie()
{
if (MovieNameList == null || MovieNameList.Count == 0)
return;
if (playerMode == PlayerMode.MovieMode && MoviePlayerCurrentPossition == 0)
{
if (MovieNameListIndex < MovieNameList.Count)
{
MoviePathFile = MovieFolder + "\\" + MovieNameList[MovieNameListIndex];
MovieNameListIndex++;
}
else
{
MovieNameListIndex = 0;
MoviePathFile = MovieFolder + "\\" + MovieNameList[MovieNameListIndex];
MovieNameListIndex++;
}
try
{
axWindowsMediaPlayer.URL = MoviePathFile;
if (axWindowsMediaPlayer.URL != "" && axWindowsMediaPlayer.URL != null)
{
axWindowsMediaPlayer.Ctlcontrols.play();
playerMode = PlayerMode.MovieMode;
}
}
catch { }
}
else if (MoviePlayerCurrentPossition != 0)
{
try
{
axWindowsMediaPlayer.URL = LastMovieName;
axWindowsMediaPlayer.Ctlcontrols.currentPosition = MoviePlayerCurrentPossition;
if (axWindowsMediaPlayer.URL != "" && axWindowsMediaPlayer.URL != null)
{
axWindowsMediaPlayer.Ctlcontrols.play();
playerMode = PlayerMode.MovieMode;
}
MoviePlayerCurrentPossition = 0;
}
catch { }
}
}
private void PlayTeaser()
{
if (this.MoviePlayerCanPlayTeaser)
{
if (TeaserNameList == null || TeaserNameList.Count == 0)
return;
if (TeaserNameListIndex < TeaserNameList.Count)
{
TeaserPathFile = TeaserFolder + "\\" + TeaserNameList[TeaserNameListIndex];
TeaserNameListIndex++;
}
else
{
TeaserNameListIndex = 0;
TeaserPathFile = TeaserFolder + "\\" + TeaserNameList[TeaserNameListIndex];
TeaserNameListIndex++;
}
try
{
axWindowsMediaPlayer.URL = TeaserPathFile;
if (axWindowsMediaPlayer.URL != "" && axWindowsMediaPlayer.URL != null)
{
playerMode = PlayerMode.TeaserMode;
axWindowsMediaPlayer.Ctlcontrols.play();
}
}
catch { }
}
}
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (axWindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
playerMode = PlayerMode.MovieMode;
PlayMovie();
}
else if (axWindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsPaused)
{
playerMode = MoviePlayer.PlayerMode.TeaserMode;
PlayTeaser();
}
}
private void timerteseinterval_Tick(对象发送方,事件参数e)
{
if(this.movieplayercanplaytaster&&playerMode!=playerMode.straesermode&&axWindowsMediaPlayer.playState==WMPLib.WMPPlayState.wmppsPlaying)
{
MoviePlayerCurrentPosition=Convert.ToInt32(axWindowsMediaPlayer.Ctlcontrols.currentPosition);
LastMovieName=MoviePathFile;
axWindowsMediaPlayer.Ctlcontrols.pause();
}
}
私人电影
{
if(MovieNameList==null | | MovieNameList.Count==0)
回来
如果(playerMode==playerMode.MovieMode&&MoviePlayerCurrentPosition==0)
{
if(MovieNameListIndex
可能是因为您正在将int
值发送到CurrentPosition
。在axWindowsMediaPlayer.Ctlcontrols.play()之后,尝试double
并尝试设置CurrentPosition
,
我这样做了,但没有任何改变@alexjolig您是否尝试在更改当前位置的行上放置断点?它能跑吗?是的,它能跑