﻿

{"id":15589,"date":"2023-10-07T11:12:59","date_gmt":"2023-10-07T02:12:59","guid":{"rendered":"https:\/\/www.bitstrong.com\/jp\/?p=15589"},"modified":"2023-12-13T10:37:41","modified_gmt":"2023-12-13T01:37:41","slug":"general-playback-by-time","status":"publish","type":"post","link":"https:\/\/www.bitstrong.com\/jp\/general-playback-by-time\/","title":{"rendered":"\u3010General\u3011Playback By Time"},"content":{"rendered":"<p><strong><span style=\"font-size: 18pt;\">\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/strong><\/p>\n<div>\/\/<\/div>\n<div>\/\/ Device Network SDK (General)<\/div>\n<div>\/\/ Sample Code of Playback by Time<\/div>\n<div>\/\/<\/div>\n<div>#include &lt;stdio.h&gt;<\/div>\n<div>#include &lt;iostream&gt;<\/div>\n<div>#include &#8220;Windows.h&#8221;<\/div>\n<div>#include &#8220;HCNetSDK.h&#8221;<\/div>\n<p>using namespace std;<\/p>\n<div>typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();<\/div>\n<p>PROCGETCONSOLEWINDOW GetConsoleWindow;<\/p>\n<div>void main() {<\/div>\n<div>\u00a0 \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u00a0 \/\/ Initialize<\/div>\n<div>\u00a0 NET_DVR_Init();<\/div>\n<div>\u00a0 \/\/Set connection time and reconnection time<\/div>\n<div>\u00a0 NET_DVR_SetConnectTime(2000, 1);<\/div>\n<p>NET_DVR_SetReconnect(10000, true);<\/p>\n<div>\u00a0 \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u00a0 \/\/ Get window handle of control center<\/div>\n<div>\u00a0 HMODULE hKernel32 = GetModuleHandle(&#8220;kernel32&#8221;);<\/div>\n<p>GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,&#8221;GetConsoleWindow&#8221;);<\/p>\n<div>\u00a0 \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u00a0 \/\/ Log in to device<\/div>\n<p>LONG lUserID;<\/p>\n<div>\u00a0 \/\/Login parameters, including device IP address, user name, password, and so on.<\/div>\n<div>\u00a0 NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};<\/div>\n<div>\u00a0 struLoginInfo.bUseAsynLogin = 0; \/\/Synchronous login mode<\/div>\n<div>\u00a0 strcpy(struLoginInfo.sDeviceAddress, &#8220;192.0.0.64&#8221;); \/\/IP address<\/div>\n<div>\u00a0 struLoginInfo.wPort = 8000; \/\/Service port<\/div>\n<div>\u00a0 strcpy(struLoginInfo.sUserName, &#8220;admin&#8221;); \/\/User name<\/div>\n<p>strcpy(struLoginInfo.sPassword, &#8220;abcd1234&#8221;); \/\/Password<\/p>\n<div>\u00a0 \/\/Device information, output parameters<\/div>\n<div>\u00a0 NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};<\/div>\n<p>lUserID = NET_DVR_Login_V40(&amp;struLoginInfo, &amp;struDeviceInfoV40);<\/p>\n<div>\u00a0 if (lUserID &lt; 0)<\/div>\n<div>\u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 printf(&#8220;Login failed, error code: %d\\n&#8221;, NET_DVR_GetLastError());<\/div>\n<div>\u00a0 \u00a0 \u00a0 NET_DVR_Cleanup();<\/div>\n<div>\u00a0 \u00a0 \u00a0 return;<\/div>\n<p>}<\/p>\n<div>\u00a0 HWND hWnd = GetConsoleWindow();\u00a0 \u00a0 \u00a0\/\/Get window handle<\/div>\n<div>\u00a0 NET_DVR_VOD_PARA_V50 struVodPara = {0};<\/div>\n<div>\u00a0 struVodPara.dwsize = sizeof(struVodPara);<\/div>\n<div>\u00a0 struVodPara.struIDInfo.dwsize = sizeof(NET_DVR_STREAM_INFO);<\/div>\n<div>\u00a0 struVodPara.struIDInfo.dwChannel = 1;<\/div>\n<div>\u00a0 struVodPara.hWnd = hWnd;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.wYear = 2019;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.byMonth = 6;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.byDay = 14;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.byHour = 9;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.byMinute = 0;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.bySecond = 0;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.byISO8601 = 0;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.cTimeDifferenceH = 0;<\/div>\n<div>\u00a0 struVodPara.struBeginTime.cTimeDifferenceM = 0;<\/div>\n<div>\u00a0 struVodPara.struEndTime.wYear = 2019;<\/div>\n<div>\u00a0 struVodPara.struEndTime.byMonth = 7;<\/div>\n<div>\u00a0 struVodPara.struEndTime.byDay = 14;<\/div>\n<div>\u00a0 struVodPara.struEndTime.byHour = 9;<\/div>\n<div>\u00a0 struVodPara.struEndTime.byMinute = 0;<\/div>\n<div>\u00a0 struVodPara.struEndTime.bySecond = 0;<\/div>\n<div>\u00a0 struVodPara.struEndTime.byISO8601 = 0;<\/div>\n<div>\u00a0 struVodPara.struEndTime.cTimeDifferenceH = 0;<\/div>\n<div>\u00a0 struVodPara.struEndTime.cTimeDifferenceM = 0;<\/div>\n<div>\u00a0 struVodPara.byVolumeType = 0;<\/div>\n<div>\u00a0 struVodPara.byDrawFrame = 0;<\/div>\n<div>\u00a0 struVodPara.byStreamType = 0;<\/div>\n<div>\u00a0 struVodPara.byLinkMode = 0;<\/div>\n<div>\u00a0 struVodPara.byCourseFile = 0;<\/div>\n<div>\u00a0 struVodPara.byOptimalStreamType = 0;<\/div>\n<div>\u00a0 struVodPara.byDownload = 0;<\/div>\n<div>\u00a0 struVodPara.byDisplayBufNum = 0;<\/div>\n<div>\u00a0 sprintf((char *)struVodPara.sUserName, &#8220;%s&#8221;, &#8220;admin&#8221;);<\/div>\n<div>\u00a0 sprintf((char *)struVodPara.sPassword, &#8220;%s&#8221;, &#8220;12345&#8221;);<\/div>\n<div>\u00a0 struVodPara.byRemoteFile = 1;<\/div>\n<p>struVodPara.byPlayMode = 0;<\/p>\n<div>\u00a0 \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u00a0 \/\/Playback by time<\/div>\n<div>\u00a0 LONG lPlayHandle = NET_DVR_PlayBackByTime_V50(lUserID, &amp;struVodPara);<\/div>\n<div>\u00a0 if (lPlayHandle &lt; 0)<\/div>\n<div>\u00a0 {<\/div>\n<div>\u00a0 \u00a0 printf(&#8220;NET_DVR_PlayBackByTime_V50 fail, last error %d\\n&#8221;, NET_DVR_GetLastError());<\/div>\n<div>\u00a0 \u00a0 NET_DVR_Logout(lUserID);<\/div>\n<div>\u00a0 \u00a0 NET_DVR_Cleanup();<\/div>\n<div>\u00a0 \u00a0 return;<\/div>\n<p>}<\/p>\n<div>\u00a0 \/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>\u00a0 \/\/Start playback<\/div>\n<div>\u00a0 if(!NET_DVR_PlayBackControl_V40(hPlayback, NET_DVR_PLAYSTART,NULL, 0, NULL,NULL))<\/div>\n<div>\u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 printf(&#8220;play back control failed [%d]\\n&#8221;,NET_DVR_GetLastError());<\/div>\n<div>\u00a0 \u00a0 \u00a0 NET_DVR_Logout(lUserID);<\/div>\n<div>\u00a0 \u00a0 \u00a0 NET_DVR_Cleanup();<\/div>\n<div>\u00a0 \u00a0 \u00a0 return;<\/div>\n<p>}<\/p>\n<div>\u00a0 Sleep(15000);\u00a0 \/\/millisecond<\/div>\n<div>\u00a0 if(!NET_DVR_StopPlayBack(hPlayback))<\/div>\n<div>\u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 printf(&#8220;failed to stop file [%d]\\n&#8221;,NET_DVR_GetLastError());<\/div>\n<div>\u00a0 \u00a0 \u00a0 NET_DVR_Logout(lUserID);<\/div>\n<div>\u00a0 \u00a0 \u00a0 NET_DVR_Cleanup();<\/div>\n<div>\u00a0 \u00a0 \u00a0 return;<\/div>\n<p>}<\/p>\n<div>\u00a0 \/\/Log out<\/div>\n<div>\u00a0 NET_DVR_Logout(lUserID);<\/div>\n<div>\u00a0 \/\/Release SDK resource<\/div>\n<div>\u00a0 NET_DVR_Cleanup();<\/div>\n<div>\u00a0 return;<\/div>\n<div>}<\/div>\n","protected":false},"excerpt":{"rendered":"\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0 \/\/ \/\/ Device Network SDK (General) \/\/ Sample Code of Playback by Time \/\/ #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &#8220;Wind...","protected":false},"author":2,"featured_media":15936,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[107],"tags":[],"class_list":["post-15589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-camera-connection"],"_links":{"self":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts\/15589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/comments?post=15589"}],"version-history":[{"count":5,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts\/15589\/revisions"}],"predecessor-version":[{"id":15710,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts\/15589\/revisions\/15710"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/media\/15936"}],"wp:attachment":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/media?parent=15589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/categories?post=15589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/tags?post=15589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}