Ejemplo n.º 1
0
        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}");
            }
        }
Ejemplo n.º 2
0
 public FfmpegJobModel GetAudioJob(Guid id)
 {
     return(Retry(() =>
     {
         var statusTask = _statusClient.GetAsync(id);
         Task.WaitAll(statusTask);
         FfmpegJobModel result = statusTask.Result;
         return result;
     }));
 }
Ejemplo n.º 3
0
        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);
        }