Остановить видео в определенной позиции с помощью Windows Media Player SDK - PullRequest
0 голосов
/ 16 июля 2009

Есть ли способ остановить видео в определенной позиции с помощью Windows Media Player SDK? Я использую C # для встраивания проигрывателя и пытаюсь увидеть, имеет ли интерфейс IWMPControls3 какие-либо возможности остановки в определенный момент с точки зрения положения или времени. Если это можно сделать, то как это сделать?

Ответы [ 2 ]

1 голос
/ 16 июля 2009

Конечно, это можно сделать, хотя я больше не помню техник. Есть способы, которыми вы можете получить доступ к данным в потоке достаточно хорошо, чтобы восстановить аудио и отдельные кадры видео. Люди написали системы, в которых пользователь может ввести точное время и номер кадра, и видеоплеер перейдет к этому месту.

Поскольку ваш вопрос был "есть ли способ", ответ "Да". Однако я не могу вспомнить достаточно подробностей, чтобы рассказать вам, как это сделать.

0 голосов
/ 24 сентября 2014

Как я объяснил в том же вопросе здесь , вы можете использовать таймер для управления текущей позицией:

private Timer tmrWmpPlayerPosition;
private TimeSpan StopPosition;

private void btn_Click(object sender, EventArgs e)
{
    wmpPlayer.Ctlcontrols.currentPosition = 4;
    StopPosition=TimeSpan.Parse("00:20:20");
    StopWmpPlayerTimer();
    StartWmpPlayerTimer();
}

private void tmrWmpPlayerPosition_Tick(object sender, EventArgs e)
{
    if ((Convert.ToInt32(StopPosition.TotalSeconds) != Convert.ToInt32(wmpPlayer.Ctlcontrols.currentPosition))) return;
    wmpPlayer.Ctlcontrols.pause();
    StopWmpPlayerTimer();
}

private void StartWmpPlayerTimer()
{
    tmrWmpPlayerPosition = new Timer();
    tmrWmpPlayerPosition.Tick += new EventHandler(tmrWmpPlayerPosition_Tick);
    tmrWmpPlayerPosition.Enabled = true;
    tmrWmpPlayerPosition.Interval = 1000;
    tmrWmpPlayerPosition.Start();
}

private void StopWmpPlayerTimer()
{
    if (tmrWmpPlayerPosition != null)
        tmrWmpPlayerPosition.Dispose();
    tmrWmpPlayerPosition = null;
}
...