140 lines
5.8 KiB
C#
140 lines
5.8 KiB
C#
#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 |