ReplayKit 仅在运行 iOS 9.0 或更高版本的特定 iPhone、iPad 和 iPod Touch 设备上可用。
利用 ReplayKit,你可以录制游戏中的音频和视频,以及通过麦克风录制的用户评论,和通过摄像头录制的用户视频。使用 StartRecording() 函数开始录制,使用 StopRecording() 函数停止录制。你可以使用 Preview() 函数预览录制,该函数会启动单独的视频查看器。除了本地录制外,你还可以通过 StartBroadcasting() 直播录制。还有用于暂停、恢复和停止直播的函数。
using System; using UnityEngine; #if PLATFORM_IOS using UnityEngine.iOS; using UnityEngine.Apple.ReplayKit;
public class Replay : MonoBehaviour { public bool enableMicrophone = false; public bool enableCamera = false;
string lastError = ""; void OnGUI() { if (!ReplayKit.APIAvailable) { return; } var recording = ReplayKit.isRecording; string caption = recording ? "Stop Recording" : "Start Recording"; if (GUI.Button(new Rect(10, 10, 500, 200), caption)) { try { recording = !recording; if (recording) { ReplayKit.StartRecording(enableMicrophone, enableCamera); } else { ReplayKit.StopRecording(); } } catch (Exception e) { lastError = e.ToString(); } }
GUI.Label(new Rect(10, 220, 500, 50), "Last error: " + ReplayKit.lastError); GUI.Label(new Rect(10, 280, 500, 50), "Last exception: " + lastError);
if (ReplayKit.recordingAvailable) { if (GUI.Button(new Rect(10, 350, 500, 200), "Preview")) { ReplayKit.Preview(); } if (GUI.Button(new Rect(10, 560, 500, 200), "Discard")) { ReplayKit.Discard(); } } }
void Update() { // If the camera is enabled, show the recorded video overlaying the game. if (ReplayKit.isRecording && enableCamera) ReplayKit.ShowCameraPreviewAt(10, 350, 200, 200); else ReplayKit.HideCameraPreview(); } } #endif
StartBroadcasting | 发起并开始新直播。当调用 StartBroadcast 时,用户会看到直播提供商选择屏幕,然后再看到直播设置屏幕。完成后,直播将会开始,并且将调用回调函数。如果出现任何错误,也将调用此回调函数。 |