chicken_dy/Assets/HCMiniSdk/Scripts/WebGL/HCBytedance/HCBytedanceBase.cs

140 lines
5.8 KiB
C#
Raw Permalink Normal View History

2024-03-07 12:12:48 +00:00
#if WEBGL_BYTEDANCE
using System;
using System.Collections.Generic;
using System.Linq;
using StarkSDKSpace;
namespace HC
{
public class HCBytedanceBase : HCIBase
{
public void Vibrate(int shakeType, float intensity = 1)
{
}
public void OpenCustomerService(Dictionary<string, object> param)
{
}
public void ExitApp()
{
StarkSDK.API.ExitApp();
}
public bool StartRecord(bool isRecordAudio, int maxRecordTimeSec = 600, Action startCallback = null, Action<int, string> errorCallback = null, Action<string> timeoutCallback = null)
{
HCDebugger.LogDebug($"[HCBytedanceBase] [StartRecord] isRecordAudio = {isRecordAudio} maxRecordTimeSec = {maxRecordTimeSec}");
return StarkSDK.API.GetStarkGameRecorder().StartRecord(isRecordAudio, maxRecordTimeSec, () =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [StartRecord] [startCallback]");
startCallback?.Invoke();
}, (errCode, errMsg) =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [StartRecord] [startCallback] errCode = {errCode} errMsg = {errMsg}");
errorCallback?.Invoke(errCode, errMsg);
},
videoPath =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [StartRecord] [startCallback] videoPath = {videoPath}");
timeoutCallback?.Invoke(videoPath);
});
}
public bool StopRecord(Action<string> completeCallback = null, Action<int, string> errorCallback = null, List<TimeRange> clipRanges = null, bool autoMerge = true)
{
List<StarkGameRecorder.TimeRange> _clipRanges = null;
if (clipRanges == null) return StarkSDK.API.GetStarkGameRecorder().StopRecord(videoPath => { completeCallback?.Invoke(videoPath); }, (code, msg) => { errorCallback?.Invoke(code, msg); }, _clipRanges, autoMerge);
_clipRanges = clipRanges.Select(clipRange => new StarkGameRecorder.TimeRange(clipRange.start, clipRange.end)).ToList();
return StarkSDK.API.GetStarkGameRecorder().StopRecord(videoPath =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [StopRecord] [completeCallback] videoPath : {videoPath}");
completeCallback?.Invoke(videoPath);
}, (code, msg) =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [StopRecord] [errorCallback] code : {code} msg : msg");
errorCallback?.Invoke(code, msg);
}, _clipRanges, autoMerge);
}
public void CheckScene(string scene, Action<bool> success, Action complete, Action<int, string> error)
{
HCDebugger.LogDebug($"[HCBytedanceBase] [CheckScene] scene = {scene}");
StarkSideBar.SceneEnum _scene;
// 只允许使用 sidebar
if ("sidebar".Equals(scene))
{
_scene = StarkSideBar.SceneEnum.SideBar;
}
else
{
_scene = StarkSideBar.SceneEnum.SideBar;
}
StarkSDK.API.GetStarkSideBarManager().CheckScene(_scene, b =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [CheckScene] [success] scene = {scene} b = {b}");
success?.Invoke(b);
}, () =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [CheckScene] [complete] scene = {scene}");
complete?.Invoke();
},
(errCode, errMsg) =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [CheckScene] [error] scene = {scene} errCode = {errCode} errMsg = {errMsg}");
error?.Invoke(errCode, errMsg);
});
}
public void NavigateToScene(string scene, Action success, Action complete, Action<int, string> error)
{
HCDebugger.LogDebug($"[HCBytedanceBase] [NavigateToScene] scene = {scene}");
StarkSideBar.SceneEnum _scene;
// 只允许使用 sidebar
if ("sidebar".Equals(scene))
{
_scene = StarkSideBar.SceneEnum.SideBar;
}
else
{
_scene = StarkSideBar.SceneEnum.SideBar;
}
StarkSDK.API.GetStarkSideBarManager().NavigateToScene(_scene, () =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [NavigateToScene] [success] scene = {scene}");
success?.Invoke();
}, () =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [NavigateToScene] [complete] scene = {scene}");
complete?.Invoke();
},
(errCode, errMsg) =>
{
HCDebugger.LogDebug($"[HCBytedanceBase] [NavigateToScene] [error] scene = {scene} errCode = {errCode} errMsg = {errMsg}");
error?.Invoke(errCode, errMsg);
});
}
public void OnShowWithDict(Action<Dictionary<string, object>> param)
{
HCDebugger.LogDebug("[HCBytedanceBase] [OnShowWithDict] ");
StarkSDK.API.GetStarkAppLifeCycle().OnShowWithDict += objects =>
{
HCDebugger.LogDebug("[HCBytedanceBase] [OnShowWithDict] callback start = ");
foreach (var objectsKey in objects.Keys)
{
HCDebugger.LogDebug($"[HCBytedanceBase] [OnShowWithDict] callback key = {objectsKey} value = {objects[objectsKey]} ");
}
HCDebugger.LogDebug("[HCBytedanceBase] [OnShowWithDict] callback end = ");
param?.Invoke(objects);
};
}
}
}
#endif