在运行时完全禁用每个播放的最好方法是什么?



我想在运行iphone4/3G/3GS时禁用内置的everyplay

,但我不确定最简单的地方,只是全局禁用它。有什么建议吗?

if (iPhone.generation == iPhoneGeneration.iPhone4  || iPhone.generation == iPhoneGeneration.iPhone3G || iPhone.generation == iPhoneGeneration.iPhone3GS )

你可以通过在游戏的第一个场景中调用Everyplay.SharedInstance.SetDisableSingleCoreDevices(true)来轻松禁用单核设备(3GS/4/iPad1)。在此之后,你不必担心是否在单核设备上调用StartRecording,因为调用会被Everyplay忽略,3G(和Unity编辑器)首先不支持录制。

如果你需要在iPad 1上支持录音,一种方法是创建一个Everyplay单例包装器,它不会在你已经定义为不支持的设备上调用录音函数。

简单的包装器示例(未经测试,但可以让您了解):

using UnityEngine;
public static class MyEveryplayWrapper {
    private static iPhoneGeneration[] unsupportedDevices = {
        iPhoneGeneration.iPad1Gen,
        iPhoneGeneration.iPhone,
        iPhoneGeneration.iPhone3G,
        iPhoneGeneration.iPhone3GS,
        iPhoneGeneration.iPodTouch1Gen,
        iPhoneGeneration.iPodTouch2Gen,
        iPhoneGeneration.iPodTouch3Gen
    };
    private static bool CheckIfRecordingSupported() {
        bool recordingSupported = !Application.isEditor;
        foreach(iPhoneGeneration device in unsupportedDevices) {
            if(device == iPhone.generation) {
                recordingSupported = false;
                break;
            }
        }
        Debug.Log ("Everyplay recording support: " + recordingSupported);
        return recordingSupported;
    }
    public static bool IsRecordingSupported = CheckIfRecordingSupported();
    public static void StartRecording() {
        if(IsRecordingSupported) {
            Everyplay.SharedInstance.StartRecording();
        }
    }
    public static void StopRecording() {
        if(IsRecordingSupported) {
            Everyplay.SharedInstance.StopRecording();
        }
    }
}

要使用它,只需调用MyEveryplayWrapper.MethodName而不是Everyplay.SharedInstance.MethodName。当渲染你的UI时,你可以考虑IsRecordingSupported来显示/隐藏Everplay相关的按钮等

相关内容

最新更新