コード例 #1
0
        public void CreateComment(dynamic id, DateTime eventTimeStart, DateTime eventTimeEnd, string commentHeader, string description)
        {
            Item camera = Configuration.Instance.GetItem(id);
            BookmarkReference bookmarkReference = BookmarkService.Instance.BookmarkGetNewReference(camera.FQID, true);

            try
            {
                BookmarkService.Instance.BookmarkCreate(
                    camera.FQID,
                    eventTimeStart.AddSeconds(-1), //Время начала фрагмента, ассоциированного с меткой
                    eventTimeStart,                //Фактическое время срабатывания метки
                    eventTimeEnd,                  //Время окончания фрагмента, ассоциированного с меткой
                    bookmarkReference.ToString(),  //Уникальный идентификатор метки или комментария
                    commentHeader,                 //Заголовок комментация
                    description);                  //Текст комментария
            }
            catch (Exception)
            {
                //Как обрабатывать сторонние ошибки?
                throw new NotImplementedException();
            }
        }
コード例 #2
0
        public void CreateBookmark(dynamic id, DateTime eventTime, string bookmarkName)
        {
            Item camera = Configuration.Instance.GetItem(id);
            BookmarkReference bookmarkReference = BookmarkService.Instance.BookmarkGetNewReference(camera.FQID, true);

            try
            {
                BookmarkService.Instance.BookmarkCreate(
                    camera.FQID,
                    eventTime.AddSeconds(-0.1),   //Время начала фрагмента, ассоциированного с меткой
                    eventTime,                    //Фактическое время срабатывания метки
                    eventTime.AddSeconds(0.1),    //Время окончания фрагмента, ассоциированного с меткой
                    bookmarkReference.ToString(), //Уникальный идентификатор метки или комментария
                    bookmarkName,                 //Название нужно для облегчения поиска
                    null);                        // Комментарий не требуется
            }
            catch (Exception)
            {
                //Как обрабатывать сторонние ошибки?
                throw new NotImplementedException();
            }
        }
コード例 #3
0
        public void Bookmark()
        {
            // Initialize the SDK - must be done in stand alone
            VideoOS.Platform.SDK.Environment.Initialize();
            VideoOS.Platform.SDK.UI.Environment.Initialize();           // Initialize ActiveX references, e.g. usage of ImageViewerActiveX etc

            #region Connect to the server
            if (EnvironmentManager.Instance.MasterSite.ServerId.ServerType == ServerId.EnterpriseServerType)
            {
                Console.WriteLine("Bookmark is not supported on this product.");
                Console.ReadKey();
                return;
            }
            #endregion

            #region Select a camera
            Item _selectItem1 = null;
            VideoOS.Platform.UI.ItemPickerForm form = new VideoOS.Platform.UI.ItemPickerForm();
            form.KindFilter = Kind.Camera;
            form.AutoAccept = true;
            form.Init(Configuration.Instance.GetItems());
            if (form.ShowDialog() == DialogResult.OK)
            {
                _selectItem1 = form.SelectedItem;
            }
            if (_selectItem1 == null)
            {
                Console.WriteLine("Failed to pick a camera");
                Console.ReadKey();
                return;
            }
            if (_selectItem1.FQID.ServerId.ServerType == ServerId.EnterpriseServerType)
            {
                Console.WriteLine("Bookmark is not supported on this product.");
                Console.ReadKey();
                return;
            }

            FQID cameraFqid = _selectItem1.FQID;

            #endregion

            DateTime timeNow = DateTime.Now;

            Guid[] mediaDeviceTypes = new Guid[3];
            mediaDeviceTypes[0] = Kind.Camera;
            mediaDeviceTypes[1] = Kind.Microphone;
            mediaDeviceTypes[2] = Kind.Speaker;

            #region get bookmark reference

            Console.WriteLine("Asking for a new Bookmark Reference:");
            BookmarkReference bookmarkReference = BookmarkService.Instance.BookmarkGetNewReference(cameraFqid, true);
            Console.WriteLine(".... Received:" + bookmarkReference.Reference);

            #endregion

            #region create first bookmark
            Console.WriteLine("Creating the first bookmark");
            DateTime timeBegin = timeNow.AddMinutes(-5);

            StringBuilder bookmarkref    = new StringBuilder();
            StringBuilder bookmarkHeader = new StringBuilder();
            StringBuilder bookmarkDesc   = new StringBuilder();
            bookmarkref.AppendFormat("Mybookmark-{0}", timeBegin.ToLongTimeString());
            bookmarkHeader.AppendFormat("AutoBookmark-{0}", timeBegin.ToLongTimeString());
            bookmarkDesc.AppendFormat("AutoBookmark-{0} set for a duration of {1} seconds", timeBegin.ToLongTimeString(), (timeBegin.AddSeconds(10) - timeBegin.AddSeconds(1)).Seconds);


            Bookmark bookmark1 = null;
            try
            {
                bookmark1 = BookmarkService.Instance.BookmarkCreate(
                    cameraFqid,
                    timeBegin.AddSeconds(1),
                    timeBegin.AddSeconds(5),
                    timeBegin.AddSeconds(10),
                    bookmarkref.ToString(),
                    bookmarkHeader.ToString(),
                    bookmarkDesc.ToString());
                Console.WriteLine("Created bookmark 1 = " + bookmark1.BookmarkFQID.ToString());
            }
            catch (Exception ex)
            {
                Console.WriteLine("BookmarkCreate 1 failed: " + ex.Message);
                Console.WriteLine("Press any Key");
                Console.ReadKey();
            }
            #endregion

            Console.WriteLine("");
            Console.WriteLine("Waiting 20sec ....");
            Console.WriteLine("");
            System.Threading.Thread.Sleep(20000);

            #region Create a second bookmark
            Console.WriteLine("Creating a second bookmark - 2 minutes after the first bookmark");
            DateTime timeBegin2 = timeBegin.AddMinutes(2);
            bookmarkHeader.Length = 0;
            bookmarkDesc.Length   = 0;
            StringBuilder bookmarkref2 = new StringBuilder();
            bookmarkref2.AppendFormat("Mybookmark-{0}", timeBegin2.ToLongTimeString());
            bookmarkHeader.AppendFormat("AutoBookmark-{0}", timeBegin2.ToLongTimeString());
            bookmarkDesc.AppendFormat("AutoBookmark-{0} set for a duration of {1} seconds", timeBegin2.ToLongTimeString(), (timeBegin2.AddSeconds(10) - timeBegin2.AddSeconds(1)).Seconds);

            Bookmark bookmark2 = null;
            try
            {
                bookmark2 = BookmarkService.Instance.BookmarkCreate(
                    cameraFqid,
                    timeBegin2.AddSeconds(1),
                    timeBegin2.AddSeconds(5),
                    timeBegin2.AddSeconds(10),
                    bookmarkref2.ToString(),
                    bookmarkHeader.ToString(),
                    bookmarkDesc.ToString());
                Console.WriteLine("Created bookmark 2 " + bookmark2.BookmarkFQID.ToString());
            }
            catch (Exception ex)
            {
                Console.WriteLine("BookmarkCreate 2 failed: " + ex.Message);
                Console.WriteLine("Press any Key");
                Console.ReadKey();
            }

            Console.WriteLine("-> trigger time = {0}", bookmark2.TimeTrigged);
            Console.WriteLine("");
            #endregion

            #region BookmarkSearchTime

            // Get max 10 the bookmarks created after the specified time
            Console.WriteLine("");
            Console.WriteLine("Looking for bookmarks using BookmarkSearchTime (finding the 2 newly created)");
            Bookmark[] bookmarkList = BookmarkService.Instance.BookmarkSearchTime(
                cameraFqid.ServerId,
                bookmark1.TimeBegin.AddSeconds(-10),
                1800000000,
                10,
                mediaDeviceTypes,
                null,
                null,
                null);
            if (bookmarkList.Length > 0)
            {
                Console.WriteLine("-> Found {0} bookmark(s)", bookmarkList.Length);
                int counter = 1;
                foreach (Bookmark bookmark in bookmarkList)
                {
                    Console.WriteLine("{0}:", counter);
                    Item camera = Configuration.Instance.GetItem(bookmark.BookmarkFQID.ParentId, Kind.Camera);

                    FQID parent = bookmark.BookmarkFQID.GetParent();

                    Item camera2 = Configuration.Instance.GetItem(parent);

                    Console.WriteLine("     Id  ={0} ", bookmark.BookmarkFQID.ToString());
                    Console.WriteLine("     Name={0} ", bookmark.Header);
                    Console.WriteLine("     Desc={0} ", bookmark.Description);
                    Console.WriteLine("     user={0} ", bookmark.User);
                    Console.WriteLine("     Device={0} Start={1} Stop={2}  ", bookmark.GetDeviceItem().FQID.ObjectId, bookmark.TimeBegin, bookmark.TimeEnd);
                    counter++;
                }
            }
            else
            {
                Console.WriteLine("sorry no bookmarks found");
            }
            Console.WriteLine("");
            #endregion

            #region BookmarkSearchFromBookmark
            // Get the next (max 10) bookmarks after the first
            Console.WriteLine("Looking for bookmarks using BookmarSearchFromBookmark (finding the last of the 2 newly created)");
            Bookmark[] bookmarkListsFromBookmark = BookmarkService.Instance.BookmarkSearchFromBookmark(
                bookmark1.BookmarkFQID,
                1800000000,
                10,
                mediaDeviceTypes,
                null,
                null,
                null);
            if (bookmarkListsFromBookmark.Length > 0)
            {
                Console.WriteLine("-> Found {0} bookmark(s)", bookmarkListsFromBookmark.Length);
                int counter = 1;
                foreach (Bookmark bookmark in bookmarkListsFromBookmark)
                {
                    Console.WriteLine("{0}:", counter);
                    Console.WriteLine("     Id  ={0} ", bookmark.BookmarkFQID.ToString());
                    Console.WriteLine("     Name={0} ", bookmark.Header);
                    Console.WriteLine("     Desc={0} ", bookmark.Description);
                    Console.WriteLine("     user={0} ", bookmark.User);
                    Console.WriteLine("     Device={0} Start={1} Stop={2}  ", bookmark.GetDeviceItem().FQID.ObjectId, bookmark.TimeBegin, bookmark.TimeEnd);
                    counter++;
                }
            }
            else
            {
                Console.WriteLine("sorry no bookmarks found");
            }
            Console.WriteLine("");

            #endregion

            #region SearchTimeAsync
            Console.WriteLine("Looking for bookmarks using bookmarkSearchTimeAsync (finding the last of the 2 newly created)");
            _hasBeenCalledBack = false;

            BookmarkService.Instance.BookmarkSearchTimeAsync(
                cameraFqid.ServerId,
                bookmark2.TimeBegin.AddSeconds(-10),
                1800000000,
                10,
                mediaDeviceTypes,
                null,
                null,
                null,
                MyAsyncCallbackHandler,
                null);

            while (!_hasBeenCalledBack)
            {
                //Do something usefull while waiting
                System.Threading.Thread.Sleep(100);
            }
            #endregion

            #region SearchBookmarkAsync
            Console.WriteLine("Looking for bookmarks using BookmarkSearchFromBookmarkAsync (finding the last of the 2 newly created)");
            _hasBeenCalledBack = false;

            BookmarkService.Instance.BookmarkSearchFromBookmarkAsync(
                bookmark1.BookmarkFQID,
                1800000000,
                10,
                mediaDeviceTypes,
                null,
                null,
                null,
                MyAsyncCallbackHandler,
                null);

            while (!_hasBeenCalledBack)
            {
                //Do something usefull while waiting
                System.Threading.Thread.Sleep(100);
            }
            #endregion

            #region BookmarkGet
            // Get first created bookmark
            Console.WriteLine("Looking for the first bookmarks using BookmarkGet (finding the first of the 2 newly created)");
            Bookmark newbookmarkFetched = BookmarkService.Instance.BookmarkGet(bookmark1.BookmarkFQID);
            if (newbookmarkFetched != null)
            {
                Console.WriteLine("-> A bookmarks is found");
                Console.WriteLine("     Id  ={0} ", newbookmarkFetched.BookmarkFQID.ToString());
                Console.WriteLine("     Name={0} ", newbookmarkFetched.Header);
                Console.WriteLine("     Desc={0} ", newbookmarkFetched.Description);
                Console.WriteLine("     user={0} ", newbookmarkFetched.User);
                Console.WriteLine("     Device={0} Start={1} Stop={2}  ", newbookmarkFetched.GetDeviceItem().FQID.ObjectId, newbookmarkFetched.TimeBegin, newbookmarkFetched.TimeEnd);
            }
            else
            {
                Console.WriteLine("Sorry no bookmarks found");
            }
            Console.WriteLine("");
            #endregion

            #region Update Bookmark1
            Console.WriteLine("Updating the bookmark just fetched using BookmarkUpdate");
            newbookmarkFetched.Description = "Now I have updated the description of this bookmark";
            Bookmark newbookmark1 = BookmarkService.Instance.BookmarkUpdate(newbookmarkFetched);
            if (newbookmarkFetched != null)
            {
                Console.WriteLine("-> Result =");
                Console.WriteLine("     Id  ={0} ", newbookmarkFetched.BookmarkFQID.ToString());
                Console.WriteLine("     Name={0} ", newbookmarkFetched.Header);
                Console.WriteLine("     Desc={0} ", newbookmarkFetched.Description);
                Console.WriteLine("     user={0} ", newbookmarkFetched.User);
                Console.WriteLine("     Device={0} Start={1} Stop={2}  ", newbookmarkFetched.GetDeviceItem().FQID.ObjectId, newbookmarkFetched.TimeBegin, newbookmarkFetched.TimeEnd);
            }
            else
            {
                Console.WriteLine("Sorry. Failed to update the bookmark");
            }
            Console.WriteLine("");

            #endregion

            #region Deleting bookmarks
            Console.WriteLine("Deleting 2 newly created bookmarks");
            BookmarkService.Instance.BookmarkDelete(bookmark1.BookmarkFQID);
            Console.WriteLine("   -> first deleted");
            BookmarkService.Instance.BookmarkDelete(bookmark2);
            Console.WriteLine("   -> second deleted");
            #endregion

            Console.WriteLine("");
            Console.WriteLine("Press any key");
            Console.ReadKey();
        }