#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 param) { } public void ExitApp() { StarkSDK.API.ExitApp(); } public bool StartRecord(bool isRecordAudio, int maxRecordTimeSec = 600, Action startCallback = null, Action errorCallback = null, Action 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 completeCallback = null, Action errorCallback = null, List clipRanges = null, bool autoMerge = true) { List _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 success, Action complete, Action 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 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> 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