Какой самый простой способ повторить видео в MediaElement - PullRequest
7 голосов
/ 04 августа 2010

У меня есть MediaElement, где источник привязан к некоторым данным

<MediaElement Source='{Binding Something}' />

Какой самый простой способ повторить видео?В идеале MediaElement должен иметь свойство повтора поведения.

<MediaElement RepeatBehavior='Forever' ... />

Но я не могу найти такое свойство.

Ответы [ 4 ]

14 голосов
/ 04 августа 2010

Вам необходимо добавить раскадровку в 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>
9 голосов
/ 12 сентября 2012

Я заставил его работать, установив UnloadedBehavior на MediaState. Manual и следующий код:

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

Настройка положениячтобы ноль не работал ...

3 голосов
/ 22 июня 2012

Я знаю, что уже немного поздно, но я не смог получить пример из MSDN.Итак, после исследования я нашел этот проект: WPF Media Kit , просто нажмите на ссылку Обзор в последней версии в правой части экрана.Вы введете код примера приложения.Мне понравилась эта библиотека, потому что цикл был таким простым:

MediaUriElement MyPlayer.Loop = True;

или <DirectShowControls:MediaUriElement x:Name="MyPlayer" Loop="True" />

Надеюсь, это поможет кому-то еще.

С уважением!

0 голосов
/ 24 января 2018

Добавление mediaElement.Position = new TimeSpan(0,0,1) к методу медиаплеера (до воспроизведения мультимедиа) не дает никакого эффекта, как это было предложено MasterMastic и Guido Zanon.Я создал событие MediaElement для MediaEnded с данным контентом, и это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...