Я разрабатываю приложение с двумя формами.
Родительская форма содержит список (видео) имен файлов, а в другой форме (дочерняя) я запускаю процесс (используя mplayer), чтобы показать соответствующее видео.
Моя цель - запустить видео в дочерней форме после нажатия на имя файла (просмотр списка) в моей основной (родительской) форме. Форма видео должна быть «плавающим окном». Поэтому не встраивается в основную форму как MDI-форма !!
Когда я запускаю проигрыватель в видео-форме (дочерняя) напрямую, все работает нормально (имя файла доступно из основной формы), и видео отображается в видео-форме. (кнопка запуска вызывает метод OpenFile ())
Когда я пытаюсь запустить видео из основной формы, видео запускается, но не отображается в форме видео (я слышу музыку)
frmVideo formVideo = new frmVideo();
formVideo.OpenFile();
Я предполагаю, что что-то не так с дескриптором между основной формой и формой видео.
public void OpenFile()
{
//
try
{
ps = new Process();
//Path of Mplayer exe
ps.StartInfo.FileName = @"C:\Program Files\SMPlayer\mplayer\mplayer.exe";
ps.StartInfo.UseShellExecute = false;
ps.StartInfo.CreateNoWindow = true;
ps.StartInfo.RedirectStandardInput = true;
args = "-nofs -noquiet -identify -slave ";
args += "-nomouseinput -sub-fuzziness 1 ";
//-wid will tell MPlayer to show output inisde our panel
args += " -vo direct3d, -ao dsound -wid ";
int id = (int)panel1.Handle;
args += id;
//
string filename = Form1.videoFile; //file name from my main form
// start player,
ps.StartInfo.Arguments = args + " \"" + filename + "\"";
ps.Start();
}