3
WMP 유형 앱을 제작하여 C# 및 WPF를 배우고 있습니다. 아래의 코드는 잘 실행되어 목록 상자에서 동영상을 선택하면 미디어 요소에서 동영상이 실행됩니다. 내가 가지고있는 문제는 영화가 끝난 후 자동으로 다음 영화를 시작하는 방법을 찾는 것입니다. 고맙습니다.WPF MediaElement 용 재생 목록
영화의 목록을 제공하는 XML 파일 :
<?xml version="1.0" encoding="ISO-8859-1"?>
곰 C를 : Butterfly.wmv 호수 \ \ 영화 : Bear.wmv \ \ 영화 나비 C c : \ movies \ Lake.wmv
XAML
<Window x:Class="WpfAppPlaylistTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="425">
<Window.Resources>
<XmlDataProvider x:Key="myMoviesXML"
Source="c:\Movies\media1.xml"
XPath="media"
/>
</Window.Resources>
<Grid DataContext="{Binding ElementName=movieList, Path=SelectedItem}">
<ListBox ItemsSource="{Binding Source={StaticResource myMoviesXML}, XPath=//media//movie}" IsSynchronizedWithCurrentItem="True"
Name="movieList" HorizontalAlignment="Right" Width="114" Margin="0,48,12,32">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=title}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<MediaElement Source="{Binding XPath=filename}" LoadedBehavior="Play" Name="mediaElement1" Margin="12,26,136,12" />
</Grid>
감사합니다. Brian, 저는 현재 MediaEnded를 사용하여 타이머를 멈추고 있지만 다음 영화로 이동하는 방법을 모르겠습니다. 나는 IEnumerable 또는 Observablecollection 또는 xmlserializer와 함께 어떤 종류의 루프를 생각하고 있습니다. 나는 어느 것이 최상인지 또는 어쩌면 하나가 막 다른 골목인지는 모른다. 조언 및/또는 샘플 코드는 크게 감사하겠습니다. –
헤이, 미디어 엔드 이벤트가 발생하면 프로그래밍 방식으로 목록 상자에서 다음 항목을 선택할 수 없습니까? 목록 상자에서 선택한 값을 미디어 요소에 매핑합니까? 그래서 선택한 인덱스를 변경하면 listbox chang 이벤트가 발생합니다. 목록 이벤트는 선택한 값을 기반으로 미디어를 변경하는 데 사용할 수 있습니다 ... 어떻게 설정 했습니까? –
예, 선택된 목록 상자 값이 미디어 요소의 소스이며 클릭으로 제대로 실행됩니다. 이 "클릭"을 자동화하기 위해 XML 파일의 인덱스를 지정하여 재생중인 트랙을 추적 할 필요가 있다고 생각합니다. 이렇게하는 방법은 제가 현재 연구하고있는 것입니다. –