Search code examples
unity-game-engineeveryplay

EveryPlay IsRecordingSupported is False on Android Nexus 5


EveryPlay.SharedInstance.IsRecordingSupported() is always FALSE on my Android devices - Nexus 5 and 7.

I am still able to record and post video on those devices if I just ignore the value.

Note: EveryPlay.SharedInstance.IsSupported() is True

Should I check for this EveryPlay.SharedInstance.IsRecordingSupported() before showing EveryPlay Recording/Sharing option to user - EveryPlay.SharedInstance.IsRecordingSupported() ?


Solution

  • Due to wide range of driver behaviour, hardware encoders, GPUs and Android version differences out there, Everyplay SDK caches device specific settings online from a remote server

    Until the settings are successfully received, the recording support is automatically disabled. After receiving the server response, the recording support is either enabled or continued to be disabled to workaround devices known to cause trouble. Next time the application is started, the settings are applied from the cache immediately upon startup without requiring network access

    In it's current form, there's a chance of getting unsupported status from EveryPlay.SharedInstance.IsRecordingSupported() if the method is called too early.

    EveryPlay.SharedInstance.IsRecordingSupported() being a synchronous method, it might be better to try out adding an event handler for Everyplay.SharedInstance.ReadyForRecording

    If the recording is eventually supported after all asynchronous tasks in the early initialization phase, ReadyForRecording gets called with granted boolean parameter set to true. In unsupported scenarios, there's probably a few corner cases more where it should also be called