我在WinForm上有一个axWindowsMediaPlayer
的{{1}}。我正在使用自定义控件来处理播放。我正在使用this method将uiMode=none
与trackBar
关联。
我想在用户滚动axWindowsMediaPlayer
时更改视频位置(跳至特定时间),就像Windows Media Player一样。
trackBar
这不起作用。我检查了许多Stackoverflow答案,包括this,this和Microsoft documentation,但没有一个起作用。
我有两个目标:
private void trackBar_Scroll(object sender, EventArgs e)
{
if (axWindowsMediaPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
axWindowsMediaPlayer.Ctlcontrols.currentPosition = trackBar.Value;
}
}
应该显示正在播放的媒体文件的当前位置。一切正常。trackBar
时,媒体播放器应基于trackBar
值更改视频当前位置。这不起作用。我们将不胜感激任何帮助。
答案 0 :(得分:0)
我解决了这个问题。问题不在于媒体播放器,而是与axWindowsMediaPlayer
一起播放的媒体文件有关。
axWindowsMediaPlayer
可以很好地播放MKV之类的文件,但是如果未安装正确的编解码器,则Ctlcontrols
主要是跟踪栏不能在代码或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