0

我正在用 C# 和 XAML 为 Windows 8 创建一个应用程序。我在带有播放和暂停按钮的媒体元素中包含了一个视频,但我想包含另一个按钮,当单击该按钮时,会使视频播放到某个点然后暂停。这可能吗?

我正在阅读这篇文章,它正在做同样的事情,但使用的是 windows media player sdk。我对 C# 不是很了解,所以我很感激任何建议。

谢谢

编辑

//Play method

if(ispaused == true && isplaying == false)
{
  VideoPlayer.Play();
}

//Pause method

if(ispaused == false && isplaying == true)
{
  VideoPlayer.Pause();
}
4

2 回答 2

4

您应该像这样使用MediaElement.Markers属性和MediaElement.MarkerReached事件:

为事件指定事件处理程序MarkerReached

VideoPlayer.MarkerReached += new TimelineMarkerRoutedEventHandler(VideoPlayer_MarkerReached);

然后在TimelineMarker您的视频中添加:

VideoPlayer.Markers.Add(new TimelineMarker() {
        Time = TimeSpan.FromSeconds(30),
        Type = "ForcePause",
        Text = "Test"} );

最后将代码添加到您的事件处理程序:

private void VideoPlayer_MarkerReached(object sender, TimelineMarkerRoutedEventArgs e)
{
    // you can check the type if you want to be safe
    if (e.Marker.Type.Equals("ForcePause"))
    {
        VideoPlayer.Pause();
    }
}
于 2012-12-13T13:07:14.550 回答
0

如果您想播放从特定时间开始并工作一段时间的背景媒体播放器(例如,音频文件),那么此代码片段也可能很有用:

    StorageFile mediaFile = await KnownFolders.VideosLibrary.GetFileAsync(fileName);//the path
    BackgroundMediaPlayer.Current.SetFileSource(mediaFile);
    BackgroundMediaPlayer.Current.Position = TimeSpan.FromMilliseconds(3000/*enter the start time here*/);
    BackgroundMediaPlayer.Current.Play();
    await Task.Delay(TimeSpan.FromMilliseconds(10000/*for how long you want to play*/));
    BackgroundMediaPlayer.Shutdown();//stops the player
于 2016-06-07T19:19:33.077 回答