Я создал простую форму, которая может воспроизводить видео, используя функции из библиотеки прямого показа. Видео воспроизводится на панели в пользовательском элементе управления, который имеет довольно простую форму. Мне интересно, есть ли способ для видео масштабировать его размер вместе с формой. Я попытался закрепить элемент управления в форме (используя док-станцию) и установить для размера автоматического изменения значение true. Я чувствую, что должно быть какое-то простое решение, но оно не приходит ко мне. Я понимаю, что это очень общее, но я был бы очень признателен за любую помощь, а также возможно ли это.
Видеопроигрыватель Directshow изменить размер проигрывателя
Ответы (1)
Вам необходимо обновить позицию видео вместе с изменением размеров формы (IVMRWindowlessControl9.SetVideoPosition
и т.п.). Образцы DirectShow.NET делают это:
\Samples\VMR9\BitmapMixer\MainForm.cs
:
private void MainForm_ResizeMove(object sender, EventArgs e)
{
if (windowlessCtrl != null)
{
int hr = windowlessCtrl.SetVideoPosition(null,
DsRect.FromRectangle(this.ClientRectangle));
}
}
person
Roman R.
schedule
20.09.2013
Не использовал это точно, но использовал это как лучшую отправную точку для моего решения. Спасибо!
- person Ian Panzica; 23.09.2013
@IanPanzica, какое у вас было решение, пожалуйста?
- person CJBrew; 06.01.2014
@CJBrew Мне удалось найти функцию ConfigureVideoWindow в классе проигрывателя, которую я вызывал всякий раз, когда размер элемента управления изменяется, и его размеры зависят от панели, на которой размещено видео.
- person Ian Panzica; 07.01.2014