I've noticed that stopping and starting Everyplay too quickly keeps the old recording, even when Everyplay.StopRecording() and then Everyplay.StartRecording() is called on a new session. Is there a way to check whether the previous recording has stopped? I've tried registering for the Everyplay.ReadyForRecording event but it never seems to be called. This is a big problem for me as my game allows players to restart a level very quickly. If they then go on to win the level on their next try, the previous failed try is the recording that shows.
If anyone is interested, I've solved this problem. You simply need to make a small delay before starting Everyplay recording after stopping. Something like this: Code (CSharp): public void startEveryplayRecording () { if(Everyplay.IsReadyForRecording()) { StartCoroutine(startEveryplayDelayed()); } else { Everyplay.ReadyForRecording += startEveryplayRecordingAfterEvent; } } IEnumerator startEveryplayDelayed () { float pauseEndTime = Time.realtimeSinceStartup + 1.2f; while (Time.realtimeSinceStartup < pauseEndTime) { yield return 0; } Everyplay.StartRecording(); yield return null; } ...
Everyplay should take this internally into account however it is best that you don't start a new recording before you have received RecordingStopped event.