예제 #1
0
        /// <summary>
        /// Gets information about a file.
        /// </summary>
        /// <param name="fileId">The id of the file to get information about.</param>
        /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception>
        /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception>
        async Task <IApiResults <GetFileInfoResponse> > IStorageFiles.GetInfoAsync
            (string fileId)
        {
            var request = new GetFileInfoRequest(fileId);

            return(await _client.GetFileInfoAsync(request, _cancellationToken));
        }
        public async Task <IActionResult> GetFiles(GetFileInfoRequest input)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            List <StoredFileInfo> files = await _storageHandler.GetFileInfo(input.Id);

            return(this.Model(new GetFileInfoResponse
            {
                Body = files
            }));
        }
        void GetFileTest()
        {
            SearchFileRequest searchFileRequest = new SearchFileRequest()
            {
                ChannelNo = 0, Beg = new SystemTimeInfo(2017, 7, 4, 8, 0, 0), End = new SystemTimeInfo(2017, 7, 4, 13, 0, 0), Type = 0
            };
            SearchFileResponse searchFileResponse = m_howell5198client.SearchFile(searchFileRequest);

            if (searchFileResponse == null)
            {
                Console.WriteLine("SearchFile error");
                return;
            }
            Console.WriteLine("searchFileResponse: filecount:{0}", searchFileResponse.FileInfos.Length);
            if (searchFileResponse.FileInfos.Length > 0)//搜索到录像文件的话
            {
                GetFileInfoRequest getFileInfoRequest = new GetFileInfoRequest();
                getFileInfoRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo;
                getFileInfoRequest.Beg       = searchFileResponse.FileInfos[0].Beg;
                getFileInfoRequest.End       = searchFileResponse.FileInfos[0].End;
                GetFileInfoResponse getFileInfoResponse = m_howell5198client.GetFileInfo(getFileInfoRequest);
                if (getFileInfoResponse == null)
                {
                    Console.WriteLine("GetFileInfo error");
                    return;
                }
                Console.WriteLine("getFileInfoResponse: FileFormatType:{0}", getFileInfoResponse.FileFormatType);
                //构建HW头
                HW_MediaInfo media = new HW_MediaInfo();
                media.Dvr_version = getFileInfoResponse.FileFormatType;
                media.Adec_code   = getFileInfoResponse.Audio_dec;
                media.Vdec_code   = getFileInfoResponse.Video_dec;
                media.Reserved[0] = (8 << 24) + (8 << 16) + (1 << 8) + 0;//au_bits+au_sampleau_sample+au_channel+reserve

                GetFileRequest getFileRequest = new GetFileRequest();
                getFileRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo;
                getFileRequest.Beg       = searchFileResponse.FileInfos[0].Beg;
                getFileRequest.End       = searchFileResponse.FileInfos[0].End;
                getFileRequest.Type      = searchFileResponse.FileInfos[0].Type;
                Howell5198FileStream filestream = m_howell5198client.GetFile(getFileRequest);
                filestream.FileDataReceived += howell5198client_FileDataReceived;
                filestream.StartReceive();
                Thread.Sleep(1000);
                filestream.StopReceive();
            }
        }