Прослушайте событие MediaEnded в другом окне - PullRequest
2 голосов
/ 07 марта 2012

Я делаю простое приложение для видеоплеера 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, если пример кодаможно опубликовать.

1 Ответ

1 голос
/ 07 марта 2012

Вызовите пользовательское событие .net из Главного окна (это пользовательское событие будет вызвано завершенным событием Media) и подпишитесь на него в окне Playlist, в обработчике этого события будет возвращено имя файла следующего .avi файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...