public async Task AudioJobTest() { File.Copy(AudioTestFile, _sourceAudioTestFile); Directory.CreateDirectory(_targetTestPath); AudioJobRequestModel request = new AudioJobRequestModel() { DestinationFilenamePrefix = _targetFileAudioPrefix, Inpoint = "0", Needed = DateTime.UtcNow, OutputFolder = _targetTestPath, SourceFilenames = new ObservableCollection <string>(new[] { _sourceAudioTestFile }), Targets = AudioTargets }; var jobGuid = await _audioJobClient.CreateNewAsync(request); bool done; int maxCount = 240; Stopwatch sw = new Stopwatch(); Console.WriteLine("Starting job {0}", jobGuid); sw.Start(); FfmpegJobModel job; do { job = await _statusClient.GetAsync(jobGuid); var runningTask = job.Tasks.FirstOrDefault(t => t.State == FfmpegTaskModelState.InProgress); Console.WriteLine($"Jobstatus : {job.State}, time: {sw.ElapsedMilliseconds} ms, filename: {runningTask?.DestinationFilename}, {runningTask?.Progress:0.##} %"); if (job.State == FfmpegJobModelState.Failed || job.State == FfmpegJobModelState.Canceled || job.State == FfmpegJobModelState.Unknown) { throw new Exception($"Error running job. job state: {job.State}"); } done = job.State == FfmpegJobModelState.Done; if (!done) { Thread.Sleep(1000); } } while (!done && maxCount-- > 0); Assert.That(done, Is.True); Console.WriteLine($"Job done, time : {sw.ElapsedMilliseconds} ms ({maxCount})"); sw.Stop(); Assert.That(job.Tasks.Count, Is.EqualTo(request.Targets.Count)); foreach (var target in job.Tasks) { string fileFullPath = Path.Combine(_targetTestPath, target.DestinationFilename); Console.WriteLine($"Checking file: {fileFullPath}"); Assert.That(File.Exists(fileFullPath), Is.True, $"Expected to find transcoded file @ {fileFullPath}"); } }
public FfmpegJobModel GetAudioJob(Guid id) { return(Retry(() => { var statusTask = _statusClient.GetAsync(id); Task.WaitAll(statusTask); FfmpegJobModel result = statusTask.Result; return result; })); }
protected override async Task OnInitializedAsync() { await StatusClient.GetAsync( response => { ViewModel.UpdateViewModel(response); }); BlazorTimer.OnElapsed += () => { Console.WriteLine("Timer Elapsed."); StatusClient.GetAsync( response => { ViewModel.UpdateViewModel(response); }); BlazorTimer.SetTimer(5000); }; BlazorTimer.SetTimer(5000); }