Я делаю простое приложение для видеоплеера C # WPF.
У меня есть 2 окна: MainWindow (родительское окно) содержит MediaElement для отображения видео.PlaylistWindow (дочернее окно) - это окно, содержащее ListBox, в котором отображаются все файлы .avi в пути appRoot.
В настоящее время, когда я дважды щелкаю элемент ListBox, оно воспроизводит это видео в MainWindow.Я хотел бы иметь функцию автоматического воспроизведения, чтобы следующий элемент в списке автоматически воспроизводился по окончании текущего видео.
Я бы хотел, чтобы PlaylistWindow прослушивал событие MediaEnded, инициируемое MediaElement в MainWindow, чтобы яможет выполнить какое-то действие с ListBox в PlaylistWindow.
Как подписаться на событие MediaEnded из PlaylistWindow?
Редактировать, чтобы добавить: в итоге я использовал другой подход, как показано ниже.Я не думаю, что это лучший способ сделать это, но он работает для меня.
public partial class MainWindow : Window
{
PlaylistWindow PLWindow = new PlaylistWindow();
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
PLWindow.Owner = this;
PLWindow.Show();
}
private void videoWindow_Ended(object sender, EventArgs e)
{
PLWindow.playNext();
}
}
public partial class PlaylistWindow : Window
{
public void playNext()
{
if (playListBox.SelectedIndex < playListBox.Items.Count - 1)
{
playListBox.SelectedIndex = playListBox.SelectedIndex + 1;
}
else { playListBox.SelectedIndex = 0; }
(Owner as MainWindow).playVideo(playListBox.SelectedValue.ToString());
}
}
Я все еще открыт для изучения того, как прослушивать событие MediaEnded в PlaylistWindow, если пример кодаможно опубликовать.