Beispiel #1
0
        public long GetFileSizeInKB(string baseDirectory, string fileName)
        {
            var metadata = _metadataService.GetRecordingMetadata(baseDirectory, fileName);

            if (metadata.FileSizeKb != -1 && metadata.FileSizeKb != 0)
            {
                return(metadata.FileSizeKb);
            }
            var fullRecordingPath = GetFullPathToRecording(baseDirectory, fileName);

            metadata.FileSizeKb = _fileService.GetFileSizeInKBDirectlyFromFile(fullRecordingPath);
            _metadataService.UpdateMetadataFile(metadata, baseDirectory, fileName);

            return(metadata.FileSizeKb);
        }
Beispiel #2
0
        public async Task ProcessAndSaveDisplayLines(string baseDirectory, string fileName)
        {
            try
            {
                if (_fileService.ProcessedDisplayLinesFileExists(baseDirectory, fileName))
                {
                    //nothing to do
                    return;
                }
                else
                {
                    var audioPath = _audioFileService.GetFullPathToRecording(baseDirectory, fileName);
                    var metadata  = _metadataService.GetRecordingMetadata(baseDirectory, fileName);
                    var samples   = await GetSampleValues(audioPath, metadata.AudioBitrate);

                    var displayLines = GetLinesFromSamples(ConfigService.PixelWidth, ConfigService.YAxis,
                                                           ConfigService.ChartHeight, samples);
                    _fileService.SaveProcessedDisplayLines(displayLines, fileName);
                    await _loggingService.LogAsync($"Processed file succesfully: {fileName} ");
                }
            }
            catch (Exception ex)
            {
                await _loggingService.LogAsync($"Error processing file! {fileName} {ex.Message}");

                if (!retryLog.ContainsKey(fileName) || retryLog[fileName] < retryMaxCount)
                {
                    await RetryProcessAndSaveDisplayLines(baseDirectory, fileName);
                }
                else
                {
                    await _loggingService.LogAsync($"Giving up processing. {fileName} {ex.Message}");
                }
            }
        }
Beispiel #3
0
 public AudioPlayService(string baseDirectory, string fileName)
 {
     _metadataService  = new MetadataService();
     _audioFileService = new AudioFileService();
     _metadata         = _metadataService.GetRecordingMetadata(baseDirectory, fileName);
     _fullPathToAudio  = _audioFileService.GetFullPathToRecording(baseDirectory, fileName);
 }