WPF MediaElement 截取一段播放

我在使用WPF中的MediaElement进行视频或音频的播放,现在我有两个变量,分别是start和end,单位是毫秒,代表我要播放的视频或音频的区段,现在如何让medi... 我在使用WPF中的MediaElement进行视频或音频的播放,
现在我有两个变量,分别是start和end,单位是毫秒,代表我要播放的视频或音频的区段,现在如何让mediaelement来播放这个由start和end代表的区段呢?
展开
 我来答
RayNCC
2011-03-21 · TA获得超过615个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:605万
展开全部
自己写个Timer来计时吧
private DispatcherTimer _playTimer = null;
private double _startTime = 2000;
private double _endTime = 8000;

public MainWindow()
{
InitializeComponent();

_playTimer = new DispatcherTimer();
// 这里的检测时间是1毫秒,
// 如果要求不是那么严格,
// 考虑节约资源,可以设置为100毫秒
_playTimer.Interval = TimeSpan.FromMilliseconds(1);
_playTimer.Tick += new EventHandler(PlayTimerOnTick);
}

private void PlayTimerOnTick(object sender, EventArgs e)
{
if (me_Video.Position.TotalMilliseconds >= _endTime)
{
me_Video.Stop();
_playTimer.Stop();
}
}

然后当需要播放的时候
me_Video.Position = TimeSpan.FromMilliseconds(_startTime);
me_Video.Play();
_playTimer.Start();
追问
我试过你的方法,我播放的视频格式是wmv,会出现很严重的延时和缓冲现象,造成Position定位和播放长度的不准确,有没有方法解决呢?
如果是mp4,上述方法可行
追答
你是远程的文件?我这边用本地的没有问题
或者你在BufferingEnded事件里去设置Position和启动Timer
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式