IP Kameradan video akışı elde etmek için yönetilmeyen kütüphaneler kullanıyorum. işlevi vardır:Winform kontrol boyutunu yönetilmeyen kod içine aktaramazsınız
pClientInfo
[DllImport("client.dll", EntryPoint = "Network_ClientStartLive", SetLastError = true)]
protected static extern int Network_ClientStartLive(
ref IntPtr pStream,
IntPtr hDev,
IntPtr pClientInfo,
[MarshalAs(UnmanagedType.FunctionPtr)] ReadDatacbf lpfnCallbackFunc = null,
UInt32 dwUserData = 0
);
bir yapı tipine işaretçidir: hPlayWnd
video akışı çıkışı olması gereken pencere bir sap olup
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
protected struct LiveConnect
{
public UInt32 dwChannel;
public IntPtr hPlayWnd;
public UInt32 dwConnectMode;
}
. Kütüphane, video çözünürlüğünü bu pencerenin boyutuna göre belirler (arama sırasında Network_ClientStartLive
). Çıkış penceresinin Picture control
olduğu ve MoveWindow
yöntemiyle boyut ayarının çıkış çözünürlüğünün tanımlandığı C++ MFC programında kontrol ettim.
Bu programın C# sürümünde, video akışını çizmek için PictureBox
-control kullanıyorum. Video görüntülenir, ancak PictureBox
'un boyutu video akışı çözünürlüğünü etkilemez.
[DllImport("user32.dll")] private static extern bool SetWindowPos( IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int width, int height, uint uFlags);denetimin boyutu değiştirildi Her iki yöntemde de
ancak kamera kütüphane çıkışına devam etti:
- WinAPI
SetWindowPos
kullanılarakpictureBox.Size
- ayarı: Ben
PictureBox
boyutunu değiştirmek için çeşitli yöntemler denedi maksimum çözünürlükte video akışı.Bu sorunu nasıl çözebilirim?
Teşekkürler!
Bir başarısızlık modu düşünemiyorum, bir .NET PictureBox ile yönetilmeyen bir kodun hiç umursayamayacağı veya görmediği bir yönetilmeyen resim denetimi arasında temelde hiçbir şey yoktur. Yanlış pencere tanıtıcısını geçme olasılığını düşünün. Formun veya masaüstünün (boş) gibi. Destek için kamera kütüphanesi satıcısına veya yazara başvurun, kolayca hata ayıklayabilirler. –
Ayrıca tanıtıcı yanlış olduğundan şüpheleniyorum. Bir günlüğe geçirdiğiniz tanıtıcıyı yazın ve uygulamanız çalışırken, resim kutusunu seçmek için Spy ++ yardımcı programını kullanın. Spy ++ tanıtıcı, oturum açtığınız tanıtıcıyla eşleşmezse, bir şey olduğunu bilirsiniz. – dazedandconfused