【问题标题】:Playlist for WPF MediaElement appWPF MediaElement 应用程序的播放列表
【发布时间】:2010-02-08 19:54:46
【问题描述】:

我正在通过构建 WMP 类型的应用程序来学习 C# 和 WPF。下面的代码运行良好,从列表框中选择电影在媒体元素中运行。我遇到的问题是找到一种方法可以在电影结束后自动开始下一部电影。谢谢。

提供电影列表的 xml 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

熊 c:\movies\Bear.wmv 蝴蝶 c:\电影\蝴蝶.wmv 湖 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>

【问题讨论】:

    标签: c# wpf mediaelement playlist


    【解决方案1】:

    MediaElement 有一个 MediaEnded 事件,当这种情况发生时应该触发。然后您可以通过编程方式选择列表中的下一项,然后播放该文件。

    【讨论】:

    • 谢谢布赖恩,我目前正在使用 MediaEnded 来停止计时器,但不确定如何使用它来移动到下一部电影。我正在考虑与 IEnumerable 或 Observablecollection 或 xmlserializer 结合使用的某种循环。我不知道哪一个是最好的,或者一个可能只是一个死胡同。建议和/或示例代码将不胜感激。
    • 嘿,如果 mediaended 事件触发,你不能编程选择列表框中的下一个条目吗?您是否将列表框选定值映射到媒体元素?所以我认为更改选定的索引会触发列表框 chang 事件,您可以使用它来根据选定的值更改媒体......但是您是如何设置它的?
    • 是的,选定的列表框值是媒体元素的来源,单击即可正常运行。为了自动化这个“点击”,我想我需要一种用整数索引 xml 文件的方法,以跟踪播放的内容。如何做到这一点是我目前正在研究的。
    • 嘿,如果你设置了 SelectedIndex 属性,它不会像你点击它一样触发事件吗?好的,如果没有,那么您可以创建一个将索引传递到其中的方法,并让此代码和列表框单击使用索引调用此方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多