diff --git a/Assets/Script/Recorder/XrealMixedRecorder.cs b/Assets/Script/Recorder/XrealMixedRecorder.cs
index 7297cf8..08ecadc 100644
--- a/Assets/Script/Recorder/XrealMixedRecorder.cs
+++ b/Assets/Script/Recorder/XrealMixedRecorder.cs
@@ -25,7 +25,7 @@ public class XrealMixedRecorder : IVideoRecorder, IController
public ResolutionLevel resolutionLevel = ResolutionLevel.High;
public BlendMode blendMode = BlendMode.Blend;
- public AudioState audioState = AudioState.ApplicationAndMicAudio;
+ public AudioState audioState = AudioState.MicAudio;
public CaptureSide captureside = CaptureSide.Single;
public bool useGreenBackGround = false;
@@ -37,27 +37,22 @@ public class XrealMixedRecorder : IVideoRecorder, IController
private GalleryDataProvider _galleryDataTool;
-
+
/// Save the video to Application.persistentDataPath.
/// The full pathname of the video save file.
- private string VideoSaveExtension => Path.Combine(Application.persistentDataPath, "Recording");
-
- private string VideoSavePath
+ public string VideoSavePath
{
get
{
- var timeStamp = Time.time.ToString().Replace(".", "").Replace(":", "");
- var filename =
- $"{this.GetSystem().GetConnectionId()}{timeStamp}.mp4";
- return Path.Combine(Application.persistentDataPath, VideoSaveExtension, filename);
+ string timeStamp = Time.time.ToString().Replace(".", "").Replace(":", "");
+ string filename = string.Format("Xreal_Record_{0}.mp4", timeStamp);
+ return Path.Combine(Application.persistentDataPath, filename);
}
}
-
- private string _videoSavePath;
+
public void StartRecording()
{
- _videoSavePath = VideoSavePath;
if (_videoCapture == null)
CreateVideoCapture(StartVideoCapture);
else if (_videoCapture.IsRecording)
@@ -112,9 +107,10 @@ public class XrealMixedRecorder : IVideoRecorder, IController
var encoder = _videoCapture.GetContext().GetEncoder() as VideoEncoder;
var path = encoder.EncodeConfig.outPutPath;
+ Debug.Log("Stopped Video Capture Mode!--path"+path);
var filename = string.Format("Xreal_Shot_Video_{0}.mp4",
DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString());
-
+ Debug.Log("Stopped Video Capture Mode!--path"+filename);
await DelayInsertVideoToGallery(path, filename, "Record");
OnStoppedRecordingVideoAction?.Invoke(path);
// Release video capture resource.
@@ -221,7 +217,18 @@ public class XrealMixedRecorder : IVideoRecorder, IController
Debug.Log("Started Video Capture Mode!");
- _videoCapture.StartRecordingAsync(_videoSavePath, (a) => OnStartedRecordingVideo?.Invoke());
+ _videoCapture.StartRecordingAsync(VideoSavePath, (a) =>
+ {
+ OnStartedRecordingVideo?.Invoke();
+ if (!a.success)
+ {
+ Debug.Log("Started Recording Video Faild!");
+ return;
+ }
+
+ Debug.Log("Started Recording Video!");
+ });
+
}
public IArchitecture GetArchitecture()
diff --git a/Assets/Script/WebRequestSystem.cs b/Assets/Script/WebRequestSystem.cs
index 18b9759..5274cdb 100644
--- a/Assets/Script/WebRequestSystem.cs
+++ b/Assets/Script/WebRequestSystem.cs
@@ -23,8 +23,29 @@ namespace Stary.Evo
#else
authorization = CustomPlayerPrefs.GetString("Authorization");
#endif
+ }
+
+ private static async UniTask GetCertificateData()
+ {
var certPath = Path.Combine(Application.streamingAssetsPath, "server.crt");
- certificateData = File.ReadAllBytes(certPath);
+ if (certificateData == null)
+ {
+#if UNITY_ANDROID && !UNITY_EDITOR
+ // Android平台使用UnityWebRequest读取
+ var webRequest = UnityWebRequest.Get(certPath);
+ await webRequest.SendWebRequest();
+ if (webRequest.result == UnityWebRequest.Result.Success)
+ {
+ certificateData = webRequest.downloadHandler.data;
+ }
+#else
+ // 其他平台使用File读取
+ if (File.Exists(certPath))
+ {
+ certificateData = File.ReadAllBytes(certPath);
+ }
+#endif
+ }
}
public static async Task Login(string url, string username, string password)
@@ -222,6 +243,7 @@ namespace Stary.Evo
{
try
{
+ await GetCertificateData();
using var webRequest = UnityWebRequest.Get(url);
webRequest.downloadHandler = new DownloadHandlerFile(tempPath);
webRequest.certificateHandler = new SelfSignedCertHandler(certificateData);
@@ -282,6 +304,7 @@ namespace Stary.Evo
{
try
{
+ await GetCertificateData();
var fullUrl = url.TrimEnd('/') + "/" + path.TrimStart('/');
using var webRequest = new UnityWebRequest(fullUrl, UnityWebRequest.kHttpVerbGET);
webRequest.downloadHandler = new DownloadHandlerBuffer();
@@ -517,6 +540,7 @@ namespace Stary.Evo
MainPanel.UsersItem host,
List participants)
{
+ await GetCertificateData();
var bytes = File.ReadAllBytes(filePath);
var fileName = Path.GetFileName(filePath);
@@ -544,5 +568,6 @@ namespace Stary.Evo
else
Debug.Log($"上传成功: {request.downloadHandler.text}");
}
+
}
}
\ No newline at end of file
diff --git a/Assets/XR/Settings/XREALSettings.asset b/Assets/XR/Settings/XREALSettings.asset
index c80baa4..761cc45 100644
--- a/Assets/XR/Settings/XREALSettings.asset
+++ b/Assets/XR/Settings/XREALSettings.asset
@@ -21,7 +21,8 @@ MonoBehaviour:
AddtionalPermissions:
- CAMERA
- VIBRATION
- - AUDIO
+ - RECORD_AUDIO
+ - FOREGROUND_SERVICE_MEDIA_PROJECTION
EnableAutoLogcat: 1
EnableNativeSessionManager: 0
SupportDevices: 0100000002000000