C#axWindowsMediaPlayer使用自定义轨道栏更改视频位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#axWindowsMediaPlayer使用自定义轨道栏更改视频位置相关的知识,希望对你有一定的参考价值。
我有一个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
以上是关于C#axWindowsMediaPlayer使用自定义轨道栏更改视频位置的主要内容,如果未能解决你的问题,请参考以下文章
axWindowsMediaPlayer 控件怎么实现连续播放多个
使用 System.Media.SoundPlayer.PlaySync() 和 AxWindowsMediaPlayer 并行播放声音
C#中添加AxWindowsMediaPlayer控件后如何使用 谢谢好心人帮帮忙
如何处理 Windows 媒体播放器控件(即 axWindowsMediaPlayer)然后再次使用它?