139 lines
5.5 KiB
C#
139 lines
5.5 KiB
C#
|
|
/*******************************************************************************
|
|||
|
|
Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
|
|||
|
|
|
|||
|
|
NOTICE:All information contained herein is, and remains the property of
|
|||
|
|
PICO Technology Co., Ltd. The intellectual and technical concepts
|
|||
|
|
contained herein are proprietary to PICO Technology Co., Ltd. and may be
|
|||
|
|
covered by patents, patents in process, and are protected by trade secret or
|
|||
|
|
copyright law. Dissemination of this information or reproduction of this
|
|||
|
|
material is strictly forbidden unless prior written permission is obtained from
|
|||
|
|
PICO Technology Co., Ltd.
|
|||
|
|
*******************************************************************************/
|
|||
|
|
|
|||
|
|
using Pico.Platform.Models;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
namespace Pico.Platform
|
|||
|
|
{
|
|||
|
|
public class HighlightService
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// Starts a new session. Before using screen recording and capturing-related functions, make sure you are in a session.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns>The session ID, which is a string.</returns>
|
|||
|
|
public static Task<string> StartSession()
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task<string>(CLIB.ppf_Highlight_StartSession());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Captures the screen.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns>The information about this capture, including image path and job ID.</returns>
|
|||
|
|
public static Task<CaptureInfo> CaptureScreen()
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task<CaptureInfo>(CLIB.ppf_Highlight_CaptureScreen());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Starts recording the screen.
|
|||
|
|
/// </summary>
|
|||
|
|
public static Task StartRecord()
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task(CLIB.ppf_Highlight_StartRecord());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Stops recording the screen.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns>The infomraiton about this recording, including video path, video duration, video size, and job ID.</returns>
|
|||
|
|
public static Task<RecordInfo> StopRecord()
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task<RecordInfo>(CLIB.ppf_Highlight_StopRecord());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Lists all the media resources for a session.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sessionId">Passes the ID of the session which is returned by `StartSession`.</param>
|
|||
|
|
/// <returns>The information about the images captured and videos recorded during this session.</returns>
|
|||
|
|
public static Task<SessionMedia> ListMedia(string sessionId)
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task<SessionMedia>(CLIB.ppf_Highlight_ListMedia(sessionId));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Saves an image or a video to the device's local storage.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="jobId">Passes the ID of the screen-capturing or screen-recording task where the image or video is created.</param>
|
|||
|
|
/// <param name="sessionId">Passes the ID of the session where the task takes place.</param>
|
|||
|
|
/// <returns>The job ID and session ID of the image or video saved.</returns>
|
|||
|
|
public static Task SaveMedia(string jobId, string sessionId)
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task(CLIB.ppf_Highlight_SaveMedia(jobId, sessionId));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Shares an image or a video to the social media on the mobile phone.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="jobId">Passes the ID of the screen-capturing or screen-recording task where the image or video is created.</param>
|
|||
|
|
/// <param name="sessionId">Passes the ID of the session where the task takes place.</param>
|
|||
|
|
/// <returns>The job ID and session ID of the image or video shared.</returns>
|
|||
|
|
public static Task ShareMedia(string jobId, string sessionId)
|
|||
|
|
{
|
|||
|
|
if (!CoreService.Initialized)
|
|||
|
|
{
|
|||
|
|
Debug.LogError(CoreService.NotInitializedError);
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Task(CLIB.ppf_Highlight_ShareMedia(jobId, sessionId));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// The maiximum duration for a video is 15 minutes.
|
|||
|
|
/// After the `StartRecord` function is called, if the `StopRecord` function is not called in time or if the recording is ended due to other causes, the system will automatically stop recording and return the recording information.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="handler">Returns the recording information.</param>
|
|||
|
|
public static void SetOnRecordStopHandler(Message<RecordInfo>.Handler handler)
|
|||
|
|
{
|
|||
|
|
Looper.RegisterNotifyHandler(MessageType.Notification_Highlight_OnRecordStop, handler);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|