|
|
|
@ -171,52 +171,35 @@ namespace IoT.Shared.DeviceServices.Onvif
|
|
|
|
|
}
|
|
|
|
|
ipCamera.ParseProfiles();
|
|
|
|
|
|
|
|
|
|
if (needAuth)
|
|
|
|
|
{
|
|
|
|
|
ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token);
|
|
|
|
|
ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token);
|
|
|
|
|
ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token);
|
|
|
|
|
}
|
|
|
|
|
ipCamera.ParseStreamUri();
|
|
|
|
|
ipCamera.ParseSnapshotUri();
|
|
|
|
|
device.AddorUpdateData(device.CreateData("NeedAuth", needAuth ? "是" : "否", DeviceDataType.String, "需认证"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("HasAuth", hasAuth ? "是" : "否", DeviceDataType.String, "已认证"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("DeviceUrl", ipCamera.DeviceUrl, DeviceDataType.String, "设备地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("PtzAddress", ipCamera.PTZAddress, DeviceDataType.String, "云台地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("Ptz3DZoomSupport", ipCamera.Ptz3DZoomSupport ? "是" : "否", DeviceDataType.String, "缩放支持"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainToken", ipCamera.Profiles.First().Token, DeviceDataType.String, "主码流Token"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubToken", ipCamera.Profiles.Last().Token, DeviceDataType.String, "子码流Token"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainStreamUri", ipCamera.MainStreamUri, DeviceDataType.String, "主码流地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainSnapshotUri", ipCamera.MainSnapshotUri, DeviceDataType.String, "主码流截图地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubStreamUri", ipCamera.SubStreamUri, DeviceDataType.String, "子码流地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubSnapshotUri", ipCamera.SubSnapshotUri, DeviceDataType.String, "子码流截图地址"));
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var jpgBytes = ScreenShot(device);
|
|
|
|
|
using (var stream = new MemoryStream(jpgBytes))
|
|
|
|
|
if (needAuth)
|
|
|
|
|
{
|
|
|
|
|
ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token);
|
|
|
|
|
ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, device.UserName, device.Password, ipCamera.Profiles.Last().Token);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
using (var bigImage = Image.FromStream(stream))
|
|
|
|
|
{
|
|
|
|
|
var width = 640;
|
|
|
|
|
var height = 480;
|
|
|
|
|
using (var bitmap = new Bitmap(width, height))
|
|
|
|
|
{
|
|
|
|
|
using (Graphics g = Graphics.FromImage((Image)bitmap))
|
|
|
|
|
{
|
|
|
|
|
g.DrawImage(bigImage, 0, 0, width, height);
|
|
|
|
|
device.AddorUpdateData(device.CreateData("Snapshot", Convert.ToBase64String(bitmap.ToJpeg(80)), DeviceDataType.String, "截图"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ipCamera.MainStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.MainSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.First().Token);
|
|
|
|
|
ipCamera.SubStreamUriXml = this._onvifDeviceManagement.GetStreamUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token);
|
|
|
|
|
ipCamera.SubSnapshotUriXml = this._onvifDeviceManagement.GetSnapshotUri(ipCamera.DeviceUrl, ipCamera.MediaUrl, ipCamera.Profiles.Last().Token);
|
|
|
|
|
}
|
|
|
|
|
ipCamera.ParseStreamUri();
|
|
|
|
|
ipCamera.ParseSnapshotUri();
|
|
|
|
|
device.AddorUpdateData(device.CreateData("NeedAuth", needAuth ? "是" : "否", DeviceDataType.String, "需认证"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("HasAuth", hasAuth ? "是" : "否", DeviceDataType.String, "已认证"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("DeviceUrl", ipCamera.DeviceUrl, DeviceDataType.String, "设备地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("PtzAddress", ipCamera.PTZAddress, DeviceDataType.String, "云台地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("Ptz3DZoomSupport", ipCamera.Ptz3DZoomSupport ? "是" : "否", DeviceDataType.String, "缩放支持"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainToken", ipCamera.Profiles.First().Token, DeviceDataType.String, "主码流Token"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubToken", ipCamera.Profiles.Last().Token, DeviceDataType.String, "子码流Token"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainStreamUri", ipCamera.MainStreamUri, DeviceDataType.String, "主码流地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("MainSnapshotUri", ipCamera.MainSnapshotUri, DeviceDataType.String, "主码流截图地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubStreamUri", ipCamera.SubStreamUri, DeviceDataType.String, "子码流地址"));
|
|
|
|
|
device.AddorUpdateData(device.CreateData("SubSnapshotUri", ipCamera.SubSnapshotUri, DeviceDataType.String, "子码流截图地址"));
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|