Browse Source

默认配置问题兼容

jeremy 1 year ago
parent
commit
70f4999094
1 changed files with 25 additions and 10 deletions
  1. 25 10
      RtmpService.cs

+ 25 - 10
RtmpService.cs

@@ -32,16 +32,7 @@ namespace WingRtmpService
 
         private void Initialize()
         {
-            var channelProvider = EnvironmentConfigs.General.LiveProtocol.ToLower() == "rtmp" ? EnvironmentConfigs.Rtmp.RTMPType : string.Empty; //ConfigurationManager.GetValue("LiveVideo", "ChannelProvider", "Netease");
-            if (channelProvider.Equals("Embedded", StringComparison.InvariantCultureIgnoreCase))
-            {
-                //Start embedded server.
-                var app = ConfigurationManager.GetValue("LiveVideo", "App", string.Empty);
-                RtmpServerConfig.DefaultApp = app;
-                _embeddedServer = new RtmpServer();
-                _embeddedServer.Start();
-            }
-
+            InitEmbeddedServer();
             // _applyCount = Config.GetValue(ServiceId.Id, "ChannelCount", 20);
             _validTime = ConfigurationManager.GetValue("TODO", "ValidTime", 2);
 
@@ -58,6 +49,7 @@ namespace WingRtmpService
 
         public async Task<GetChannelResult> GetChannelAsync(GetChannelRequest request)
         {
+            InitEmbeddedServer();
             var channel = ChannelOperationHelper.ApplyChannel();
             if (channel != null)
             {
@@ -96,6 +88,29 @@ namespace WingRtmpService
             return null;
         }
 
+        private void InitEmbeddedServer()
+        {
+            try
+            {
+                if (_embeddedServer == null)
+                {
+                    var channelProvider = EnvironmentConfigs.General.LiveProtocol.ToLower() == "rtmp" ? EnvironmentConfigs.Rtmp.RTMPType : string.Empty; //ConfigurationManager.GetValue("LiveVideo", "ChannelProvider", "Netease");
+                    if (channelProvider.Equals("Embedded", StringComparison.InvariantCultureIgnoreCase))
+                    {
+                        //Start embedded server.
+                        var app = ConfigurationManager.GetValue("LiveVideo", "App", string.Empty);
+                        RtmpServerConfig.DefaultApp = app;
+                        _embeddedServer = new RtmpServer();
+                        _embeddedServer.Start();
+                    }
+                }
+            }
+            catch(Exception ex)
+            {
+                Logger.WriteLineWarn($"RtmpService InitEmbeddedServer failed, ex:{ex}");
+            }
+        }
+