2010-08-04 36 views
5

là gì Tôi có một MediaElement nơi mà nguồn gốc là ràng buộc để một số dữ liệucách đơn giản nhất để lặp lại một đoạn video trong một MediaElement

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

cách đơn giản nhất để có lặp lại video là gì? Lý tưởng nhất, MediaElement sẽ có thuộc tính hành vi lặp lại.

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

Nhưng tôi không thể tìm thấy thuộc tính như vậy.

Trả lời

11

Bạn cần thêm Bảng phân cảnh vào MediaElement. Xem ví dụ bên dưới:

<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> 
+2

http://msdn.microsoft.com/en-us/library/ms741866.aspx – Quincy

3

Tôi biết đã muộn một chút, nhưng tôi không thể làm ví dụ từ MSDN. Vì vậy, sau khi nghiên cứu tôi đã tìm thấy dự án này: WPF Media Kit, chỉ cần nhấp vào liên kết Duyệt trong Phiên bản mới nhất ở phía bên phải của màn hình. Bạn sẽ nhập mã của ứng dụng mẫu. Tôi thích thư viện này vì một vòng lặp là đơn giản như:

MediaUriElement MyPlayer.Loop = True; 

hoặc <DirectShowControls:MediaUriElement x:Name="MyPlayer" Loop="True" />

Hy vọng điều này sẽ giúp người khác.

Trân trọng!

6

Tôi đã làm cho thiết bị hoạt động bằng cách đặt UnloadedBehavior thành MediaState. Manual và đoạn mã sau:

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

Thiết lập vị trí để làm việc didnt Zero ...

+4

Tôi đã đưa ra câu hỏi này để trả lời cùng một câu trả lời vì vậy tôi phải đề cập đến việc đặt vị trí thành 'TimeSpan.Zero 'hoạt động tốt. – MasterMastic

+1

Tôi đã thử nghiệm bản thân và thấy rằng nó hoạt động tốt với TimeSpan.Zero. Nice Ken – akatran

+0

+ MasterMastic TimeSpan.Zero không hoạt động cho mọi trường hợp. – Evgeny

0

Thêm mediaElement.Position = new TimeSpan(0,0,1) với phương pháp media player không (trước khi chơi các phương tiện truyền thông) đã ảnh hưởng khá theo đề nghị của MasterMastic và Guido Zanon. Tôi đã tạo sự kiện MediaElement cho MediaEnded với nội dung đã cho và nó hoạt động.

Các vấn đề liên quan