我有一个axWindowsMediaPlayer
在WinForm与uiMode=none
。我正在使用自定义控件来处理播放。我正在使用this method将trackBar
与axWindowsMediaPlayer
联系起来。
当用户滚动trackBar
时,我想改变视频位置(跳转到特定时间),就像windows media player一样。
private void trackBar_Scroll(object sender, EventArgs e)
{
if (axWindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
axWindowsMediaPlayer.Ctlcontrols.currentPosition = trackBar.Value;
}
}
这不起作用。我检查了很多Stackoverflow的答案,包括this,this和Microsoft documentation,但没有一个正常。
我有两个目标:
trackBar
应显示正在播放的媒体文件的当前位置。这工作正常。trackBar
时,媒体播放器应根据trackBar
值更改视频当前位置。这不起作用。任何帮助将受到高度赞赏。
我解决了这个问题。问题不在于媒体播放器,问题在于使用axWindowsMediaPlayer
播放的媒体文件。
axWindowsMediaPlayer
播放MKV这样的文件很好,但是如果没有安装正确的编解码器,那么Ctlcontrols
主要是Trackbar无法通过代码或UI工作。使用本机支持的格式,此代码可以正常工作。
private void trackBar_Scroll(object sender, EventArgs e)
{
if (axWindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)
axWindowsMediaPlayer.Ctlcontrols.currentPosition = trackBar.Value;
}
对于本机不支持的媒体文件,需要安装其编解码器。有关支持的文件格式的详细信息,请参阅此知识库文章File types supported by Windows Media Player