Použití FFPlay ve WPF - nejde skrýt ani přesouvat okno   otázka

C#, WPF

Dobrý den,

zkoušel jsem si ve WPF udělat jednoduchý přehrávač videa s využitím frameworku FFPlay. FFPlay se však i přes nastavení otevírá v samostatném okně, které nejde skrýt, ani přesunout a zmenšit prostřednictvím user32.dll funkcí. Měli byste nějaký tip? Děkuji

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
private void Button_Click(object sender, RoutedEventArgs e)
{
    var window_handle = new WindowInteropHelper(this).Handle;
 
    // start ffplay
    var ffplay = new Process
    {
        StartInfo =
    {
        FileName = Global.FFPlay,
        Arguments = @"D:\Users\uzivatel\Videos\Simpson.mp4",
        // hides the command window
        CreateNoWindow = true,
        // redirect input, output, and error streams..
        RedirectStandardError = true,
        RedirectStandardOutput = true,
        UseShellExecute = false
    }
    };
 
    ffplay.EnableRaisingEvents = true;
    ffplay.OutputDataReceived += Ffplay_OutputDataReceived;
    ffplay.ErrorDataReceived += Ffplay_OutputDataReceived;
    ffplay.Exited += (o, a) => Console.WriteLine("exited");
    ffplay.Start();
 
    Thread.Sleep(200); // you need to wait/check the process started, then...
 
    // child, new parent
    // make 'this' the parent of ffmpeg (presuming you are in scope of a Form or Control)
    SetParent(ffplay.MainWindowHandle, window_handle);
 
    // window, x, y, width, height, repaint
    // move the ffplayer window to the top-left corner and set the size to 320x280
    MoveWindow(ffplay.MainWindowHandle, 0, 0, (int)mediaElement.Width, (int)mediaElement.Height, false);
}
 
[System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
private static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
 
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
nahlásit spamnahlásit spam 0 odpovědětodpovědět

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback