在MediaElement中重复视频的最简单方法是什么

use*_*719 7 wpf video

我有一个MediaElement,其中源绑定到一些数据

<MediaElement Source='{Binding Something}' />
Run Code Online (Sandbox Code Playgroud)

让视频重复的最简单方法是什么?理想情况下,MediaElement将具有重复行为属性.

<MediaElement RepeatBehavior='Forever' ... />
Run Code Online (Sandbox Code Playgroud)

但我找不到这样的财产.

Wou*_*ens 13

您需要将Storyboard添加到MediaElement.请参阅以下示例:

<MediaElement Name="myMediaElement" >
      <MediaElement.Triggers>
        <EventTrigger RoutedEvent="MediaElement.Loaded">
          <EventTrigger.Actions>
            <BeginStoryboard>
              <Storyboard>

                <!-- The MediaTimeline has a RepeatBehavior="Forever" which makes the media play
                     over and over indefinitely.-->
                <MediaTimeline Source="media\tada.wav" Storyboard.TargetName="myMediaElement"  
                 RepeatBehavior="Forever" />

              </Storyboard>
            </BeginStoryboard>
          </EventTrigger.Actions>
        </EventTrigger>
      </MediaElement.Triggers>
    </MediaElement>
Run Code Online (Sandbox Code Playgroud)


Gui*_*non 10

我通过设置UnloadedBehavior来实现它MediaState.Manual和以下代码:

private void mediaElement_OnMediaEnded(object sender, RoutedEventArgs e)
{
    mediaElement.Position = new TimeSpan(0,0,1);
    mediaElement.Play();
}
Run Code Online (Sandbox Code Playgroud)

将位置设置为零无效...

  • 我来到这个问题是为了回答相同的答案,所以我必须提一下,将位置设置为"TimeSpan.Zero"就可以了. (5认同)
  • 如果你将`LoadedBehaviour`设置为'Play`,则删除`mediaElement.Play();`. (2认同)