2010-03-08 2 views
7

Я пытаюсь заставить видео повторять навсегда с помощью MediaElement. Я нашел код ниже на http://msdn.microsoft.com/en-us/library/ms741866.aspx, и он отлично работает.Повторное использование медиаэлемента не работает при привязке к xpath

<!-- The MediaElement control plays the sound. --> 
     <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="C:\MyVideo1.wmv" Storyboard.TargetName="myMediaElement" 
               RepeatBehavior="Forever" /> 

          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger.Actions> 
       </EventTrigger> 
      </MediaElement.Triggers> 
     </MediaElement> 

Проблема у меня, когда я пытаюсь связать MediaTimeLine к источнику XML я получаю сообщение об ошибке - «необходимо указать URI».

<MediaTimeline Source="{Binding XPath=MyVideos}" 
    Storyboard.TargetName="myMediaElement" RepeatBehavior="Forever" /> 

Есть ли решение на C#, которое могло бы заменить xaml?

+0

Я удалил триггеры и MediaTimeLine и создал источник привязки xpath для «myMediaElement». Затем я добавляю этот код в myMediaElement_MediaEnded: this.myMediaElement.Position = TimeSpan.FromSeconds (0); это.myMediaElement.Play(); Он работает, но по какой-то причине загружается – KenS

+0

Мне также интересно, как это сделать с помощью XAML. Проблема заключается в том, что Source ожидает URI, а не строку. Однако привязка к строке и ее автоматическое преобразование в URI кажутся довольно сложными, как показано здесь: http://stackoverflow.com/questions/20586/wpf-image-urisource-and-data-binding – Jakob

+0

50 из моей репутации с вопросом, который еще остается без ответа. :( – Jakob

ответ

1

Почему вы не используете конвертер значений? Я знаю, что это не полностью WPF, то есть требуется некоторая C# -кодировка, но это, похоже, делает именно то, что вам нужно и нужно. У WPF Tutorials есть довольно приличное объяснение, поэтому, если вы не возражаете, чтобы я ссылался на эту страницу, то: http://www.wpftutorial.net/ValueConverters.html

Смежные вопросы