【发布时间】:2016-01-08 12:26:02
【问题描述】:
我创建了一个具有axWindowsMediaPlayer 控件的Windows 窗体应用程序。我没有在上面创建播放列表,但我已将我的 .mp4 文件存储在特定位置。我将路径传递到 Media Ended 状态的下一个视频。玩家第一次收到正确的路径并开始游戏。但是对于第二个视频,我只能看到一个黑屏,尽管播放器正在接收正确的播放路径。
这是我的媒体结束状态代码:
private void axWindowsMediaPlayer_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if(e.newState == 8)
{
//Getting jumpTo of selected page
var selectedElementJumpToValue = MainContentAreaBl.GetSelectedElementValue(_currentId, "jumpTo");
if (selectedElementJumpToValue != null)
{
_currentId = selectedElementJumpToValue;
if (_currentId != "menu")
{
pagination.Text = MainContentAreaBl.GetPaginationText(_currentId);
LaunchPlayer(selectedElementJumpToValue);
}
else
{
this.Hide();
this.SendToBack();
menu.BringToFront();
}
}
}
}
private void LaunchPlayer(string id)
{
string selectedElementPageTypeValue = MainContentAreaBl.GetSelectedElementPageTypeValue(id);
var playerFile = Path.Combine(Common.ContentFolderPath, MainContentAreaBl.GetSelectedElementDataPathValue(id));
if (selectedElementPageTypeValue == "video")
{
InitialiseMediaPlayer();
axShockwaveFlash.Stop();
axShockwaveFlash.Visible = false;
if (File.Exists(playerFile))
{
axWindowsMediaPlayer.URL = playerFile;
}
}
else if (selectedElementPageTypeValue == "flash")
{
InitialiseShockwaveFlash();
axWindowsMediaPlayer.close();
axWindowsMediaPlayer.Visible = false;
if (File.Exists(playerFile))
{
axShockwaveFlash.Movie = playerFile;
axShockwaveFlash.Play();
}
}
}
private void InitialiseMediaPlayer()
{
axWindowsMediaPlayer.Visible = true;
axWindowsMediaPlayer.enableContextMenu = false
axWindowsMediaPlayer.uiMode = "none";
axWindowsMediaPlayer.Dock = DockStyle.Fill;
}
当我调试我的应用程序时,我看到媒体播放器在e.newState == 10(就绪状态)之后获得了正确的路径。我做错了什么?
编辑 1: 我发现在我当前的视频进入媒体结束状态后,播放器停止播放。即使我写axWindowsMediaPlayer.ctlControls.play();,也不会影响媒体播放器。这是 axWindowsMediaPlayer 中的错误吗?
【问题讨论】:
标签: c# visual-studio-2013 axwindowsmediaplayer