video plugins
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
/*----------------------------------------------------------------
|
||||
// Copyright (C) 2025 Beijing All rights reserved.
|
||||
//
|
||||
// Author: huachangmiao
|
||||
// Create Date: 2025/10/29
|
||||
// Module Describe: Leviathan日志配置类
|
||||
//----------------------------------------------------------------*/
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using UnityEngine;
|
||||
|
||||
//******************************************************************
|
||||
// 日志配置类
|
||||
//******************************************************************
|
||||
public static class LeviathanLogConfig
|
||||
{
|
||||
// 日志开关
|
||||
private static bool _enableWorkerManagerLog = false;
|
||||
private static bool _enableWorkerVideoLog = false;
|
||||
private static bool _enableWorkerDecoderLog = false;
|
||||
private static bool _enableSoftwareDecoderLog = false;
|
||||
private static bool _enableVideoDecoderLog = false;
|
||||
private static bool _enableAllLog = false;
|
||||
|
||||
// 公开属性
|
||||
public static bool EnableWorkerManagerLog
|
||||
{
|
||||
get => _enableWorkerManagerLog;
|
||||
set
|
||||
{
|
||||
_enableWorkerManagerLog = value;
|
||||
UpdateJSLogConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool EnableWorkerVideoLog
|
||||
{
|
||||
get => _enableWorkerVideoLog;
|
||||
set
|
||||
{
|
||||
_enableWorkerVideoLog = value;
|
||||
UpdateJSLogConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool EnableWorkerDecoderLog
|
||||
{
|
||||
get => _enableWorkerDecoderLog;
|
||||
set
|
||||
{
|
||||
_enableWorkerDecoderLog = value;
|
||||
UpdateJSLogConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool EnableSoftwareDecoderLog
|
||||
{
|
||||
get => _enableSoftwareDecoderLog;
|
||||
set => _enableSoftwareDecoderLog = value;
|
||||
}
|
||||
|
||||
public static bool EnableVideoDecoderLog
|
||||
{
|
||||
get => _enableVideoDecoderLog;
|
||||
set => _enableVideoDecoderLog = value;
|
||||
}
|
||||
|
||||
public static bool EnableAllLog
|
||||
{
|
||||
get => _enableAllLog;
|
||||
set
|
||||
{
|
||||
_enableAllLog = value;
|
||||
UpdateJSLogConfig();
|
||||
}
|
||||
}
|
||||
|
||||
#if UNITY_WEBGL && !UNITY_EDITOR
|
||||
[DllImport("__Internal")]
|
||||
private static extern void SetLeviathanLogConfig(bool workerManager, bool workerVideo, bool workerDecoder, bool all);
|
||||
#endif
|
||||
|
||||
// 更新JS端的日志配置
|
||||
private static void UpdateJSLogConfig()
|
||||
{
|
||||
#if UNITY_WEBGL && !UNITY_EDITOR
|
||||
try
|
||||
{
|
||||
SetLeviathanLogConfig(_enableWorkerManagerLog, _enableWorkerVideoLog, _enableWorkerDecoderLog, _enableAllLog);
|
||||
}
|
||||
catch (System.Exception e)
|
||||
{
|
||||
Debug.LogWarning($"[LeviathanLogConfig] 更新JS日志配置失败: {e.Message}");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// 便捷方法:开启所有日志
|
||||
public static void EnableAll()
|
||||
{
|
||||
EnableAllLog = true;
|
||||
}
|
||||
|
||||
// 便捷方法:关闭所有日志
|
||||
public static void DisableAll()
|
||||
{
|
||||
EnableAllLog = false;
|
||||
EnableWorkerManagerLog = false;
|
||||
EnableWorkerVideoLog = false;
|
||||
EnableWorkerDecoderLog = false;
|
||||
EnableSoftwareDecoderLog = false;
|
||||
EnableVideoDecoderLog = false;
|
||||
}
|
||||
|
||||
// C#端日志辅助方法
|
||||
public static void Log(string module, object message)
|
||||
{
|
||||
if (!ShouldLog(module)) return;
|
||||
Debug.Log($"[Leviathan{module}] {message}");
|
||||
}
|
||||
|
||||
public static void LogWarning(string module, object message)
|
||||
{
|
||||
if (!ShouldLog(module)) return;
|
||||
Debug.LogWarning($"[Leviathan{module}] {message}");
|
||||
}
|
||||
|
||||
public static void LogError(string module, object message)
|
||||
{
|
||||
if (!ShouldLog(module)) return;
|
||||
Debug.LogError($"[Leviathan{module}] {message}");
|
||||
}
|
||||
|
||||
private static bool ShouldLog(string module)
|
||||
{
|
||||
if (_enableAllLog) return true;
|
||||
|
||||
return module switch
|
||||
{
|
||||
"WorkerManager" => _enableWorkerManagerLog,
|
||||
"WorkerVideo" => _enableWorkerVideoLog,
|
||||
"WorkerDecoder" => _enableWorkerDecoderLog,
|
||||
"SoftwareDecoder" => _enableSoftwareDecoderLog,
|
||||
"VideoDecoder" => _enableVideoDecoderLog,
|
||||
_ => false
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user