示例#1
0
        public async Task <EmptyResponseDto> GoToSeconds()
        {
            try
            {
                var request = await HttpContext.GetRequestDataAsync <PlayCliFileRequestDto>();

                if (request == null)
                {
                    _logger.LogWarning($"{nameof(GoToSeconds)}: Nothing will be played, because no request was provided");
                    return(new EmptyResponseDto(false, "Invalid request"));
                }

                _logger.LogInformation($"{nameof(GoToSeconds)}: Getting file info for = {request.Mrl}...");
                var fileInfo = await _ffmpegService.GetFileInfo(request.Mrl, default);

                if (fileInfo == null && _fileService.IsUrlFile(request.Mrl))
                {
                    fileInfo = new FFProbeFileInfo();
                }

                _logger.LogInformation(
                    $"{nameof(GoToSeconds)}: Trying to play file = {JsonConvert.SerializeObject(request)} with seconds = {request.Seconds}...");

                await _castService.GoToSeconds(request, fileInfo);

                _logger.LogInformation($"{nameof(GoToSeconds)}: Mrl = {request.Mrl} was successfully loaded");

                return(new EmptyResponseDto(true));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"{nameof(GoToSeconds)}: Unknown error occurred");
                return(new EmptyResponseDto(false, e.Message));
            }
        }