瀏覽代碼

Add more robust error handling for AudioNormalizationTask (#14728)

Bond-009 1 天之前
父節點
當前提交
c7320dc189
共有 1 個文件被更改,包括 18 次插入3 次删除
  1. 18 3
      Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs

+ 18 - 3
Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs

@@ -122,7 +122,14 @@ public partial class AudioNormalizationTask : IScheduledTask
                         }
                         finally
                         {
-                            File.Delete(tempFile);
+                            try
+                            {
+                                File.Delete(tempFile);
+                            }
+                            catch (Exception ex)
+                            {
+                                _logger.LogError(ex, "Failed to delete concat file: {FileName}.", tempFile);
+                            }
                         }
                     }
                 }
@@ -232,11 +239,10 @@ public partial class AudioNormalizationTask : IScheduledTask
             },
         })
         {
+            _logger.LogDebug("Starting ffmpeg with arguments: {Arguments}", args);
             try
             {
-                _logger.LogDebug("Starting ffmpeg with arguments: {Arguments}", args);
                 process.Start();
-                process.PriorityClass = ProcessPriorityClass.BelowNormal;
             }
             catch (Exception ex)
             {
@@ -244,6 +250,15 @@ public partial class AudioNormalizationTask : IScheduledTask
                 return null;
             }
 
+            try
+            {
+                process.PriorityClass = ProcessPriorityClass.BelowNormal;
+            }
+            catch (Exception ex)
+            {
+                _logger.LogWarning(ex, "Error setting ffmpeg process priority");
+            }
+
             using var reader = process.StandardError;
             float? lufs = null;
             await foreach (var line in reader.ReadAllLinesAsync(cancellationToken).ConfigureAwait(false))