Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Released] Cross Platform Replay Kit : Record "Every Play" on iOS & Android [Now VUFORIA Compatible]

Discussion in 'Assets and Asset Store' started by Voxel-Busters, Jan 19, 2019.

  1. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Cross Platform Replay Kit allows to easily screen record your games on Unity. It supports both iOS and Android platforms with unified and simple API.

    Plugin supports mobile platforms Android (API 21 and above), iOS(9 and above - iPhone 5S or later, iPad mini 2 or later, iPod Touch 6th generation, iPad Air or later.)

    Our Other Top Selling Products
    Cross Platform Native Plugins | Cross Platform Easy Save | Cross Platform Snapchat Kit | Cross Platform Story Kit (Instagram)

    Important links
    Support | Tutorials


    Highlights
    • Unified API design.
    • Auto-generates Android Manifest file.
    • Easy API for Recording
    • Easily convertible from Unity's ReplayKit API
    • Full source code is included.

    Feature set
    • Screen Record complete screen with microphone(including UI)
    • Preview Recorded Video
    • Single API for both iOS and Android Platforms
    • Recorded File access and sharing (beta - will be available out soon)

    Note
    On Android, there is no public API to record audio without microphone.The game music will be recorded through microphone only. In coming updates we allow option to add custom music instead of just microphone captured audio.

    * This can be a quick Everyplay alternative for your project.
     
    Last edited: Aug 5, 2019
    makaka-org likes this.
  2. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Version 1.1 submitted to asset store which has compatibility issue fixes with other plugins!
     
  3. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Version 1.1 is available on store!
    Grab now!
     
  4. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Version 2.0 roadmap
    • API for getting the file path of recorded video
    • Inbuilt preview on android with save and share option
    • Option to get all saved video paths
    Stay tuned!
     
  5. JoMaHo

    JoMaHo

    Joined:
    Apr 2, 2017
    Posts:
    94
    Greetings!
    Can you confirm your plugin working on Unity 2018.3.2f1 and iOS 12.1.2?
    I was using screen recording from code (ReplayKit) but now it is not
    working (all ok on 2018.2).

    best

    EDIT: After update to iOS 12.1.3 it works again....
     
    Last edited: Jan 25, 2019
  6. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi,
    It seems to be a problem from Apple's framework. For the initial version we are using Unity's replay kit internally for iOS and in version 2.0 we go with our own custom implementation to give access for recorded file path.

    Thanks,
    VB Team
     
  7. JoMaHo

    JoMaHo

    Joined:
    Apr 2, 2017
    Posts:
    94
    Great!
    Will you have native UI components (like REC button not showing on video)?
     
  8. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    We planned for it but we can’t technically achieve it on Android and may look inconsistent among the platforms.

    So we are still thinking if it can be iOS specific alone.
     
    JoMaHo likes this.
  9. KimNulbo

    KimNulbo

    Joined:
    Jun 25, 2014
    Posts:
    8
    what is this error?

    ArgumentException: Invalid name character in 'xmlns:android'. The ':' character, hexadecimal value 0x3A, cannot be included in a name.
    System.Xml.XmlWellFormedWriter.CheckNCName (System.String ncname) (at <7fd195060d8c41448694ab221d3b56ca>:0)
    System.Xml.XmlWellFormedWriter.WriteStartAttribute (System.String prefix, System.String localName, System.String namespaceName) (at <7fd195060d8c41448694ab221d3b56ca>:0)
    System.Xml.XmlWriter.WriteAttributeString (System.String localName, System.String value) (at <7fd195060d8c41448694ab221d3b56ca>:0)
    VoxelBusters.ReplayKit.Common.Utility.AndroidManifestGenerator.WriteAttributeString (System.Xml.XmlWriter _xmlWriter, System.String _prefix, System.String _localName, System.String _nameSpace, System.String _value) (at Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Common/Utility/Automators/Script/AndroidManifest/AndroidManifestGenerator.cs:223)
    VoxelBusters.ReplayKit.Common.Utility.AndroidManifestGenerator.SaveManifest (System.String _packageName, System.String _path, System.String _versionCode, System.String _versionName, System.String _minSDKVersion, System.String _targetSDKVersion) (at Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Common/Utility/Automators/Script/AndroidManifest/AndroidManifestGenerator.cs:38)
    VoxelBusters.ReplayKit.Common.Utility.AndroidManifestGenerator.SaveManifest (System.String _packageName, System.String _path, System.String _minSDKVersion, System.String _targetSDKVersion) (at Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Common/Utility/Automators/Script/AndroidManifest/AndroidManifestGenerator.cs:16)
    VoxelBusters.ReplayKit.Internal.ReplayKitSettings.WriteAndroidManifestFile () (at Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Scripts/Settings/ReplayKitSettings.cs:131)
    VoxelBusters.ReplayKit.Internal.ReplayKitSettings.Rebuild () (at Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Scripts/Settings/ReplayKitSettings.cs:114)
    VoxelBusters.ReplayKit.Internal.ReplayKitEditorManager.RebuildSettings () (at Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/Scripts/Editor/ReplayKitEditorManager.cs:89)
     
  10. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi,
    We recently submitted the patch for this and will be soon available on Asset Store.
    Most likely you are using .Net 4.0 API setting.

    Please update the attachment file and let us know if you still see the issue.

    Thanks,
    VB Team
     

    Attached Files:

  11. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Version 1.2 is pushed to Asset Store.

    * .NET 4.x support (manifest generation fix)
    * Added option to save recorded videos directly to external storage (Gallery)

    Thanks,
    VB Team
     
  12. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Version 1.2 available on Asset Store!
     
  13. soulaymanoboy

    soulaymanoboy

    Joined:
    Oct 12, 2018
    Posts:
    10
    hey bro i can figure out how to work with this script replay Kit from unity documentation
    u have some tut or if y can help me with some instruction
     
  14. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    The issue mentioned is from ReplayKit framework of Apple and they fixed it in the later updates. Not sure what tutorial you are looking for. Please share more info.
     
  15. anatoogle

    anatoogle

    Joined:
    May 25, 2018
    Posts:
    6
    Hey,
    I use Cross Platform Replay Kit on my Android.Since update 1.2 it should be possible to save the recorded video to the external storage. I haven't figured out yet how to do this. Can you explain how to save the video to my device, and is it possible to save the file automatically after recording?
     
  16. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Thanks for purchasing the plugin :)

    Yes on latest version you can select if you want to save to external storage in ReplayKitSettings inspector. This is currently available on android only.

    Saving to external directory makes it available on gallery. You can discard the recording by calling Discard method.

    Thanks,
    VB Team
     
  17. anatoogle

    anatoogle

    Joined:
    May 25, 2018
    Posts:
    6
    Thanks for your quick answer. It works great like that.

    I have some additional questions. Is it possible to...
    - change the framerate? to 24, 25 or 30 fps for example?
    - know the exact moment each frame is recorded? Is there a method in one c# script which is being called each recorded frame? I would like to call one of my methods at the same time. That way I try to synchronise a functionality of my app.
     
    Serhii-Horun likes this.
  18. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Glad you got it working!

    - The recording is not done on c# side but on native. We don’t control every frame and is handled by the OS.

    It would be great to know the use case in more detail. Wondering what you want to syncronise.
     
  19. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    Hi @Voxel-Busters, I bought and tried the ReplayKitDemo scene on iPhone with iOS 12.3.

    The recording with microphone only works the first time after the user gives permissions to record screen and microphone. After kill and relaunch the app, calling StartRecording(true) will start the recording without the pop-up dialog, and the microphone sound does not be included. Would you know what could be wrong?
     
  20. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi,
    The permission dialog has a timer set internally by the iOS OS and won't be displayed every time. Also, we don't have any control on when to show and when not to show as its handled by the OS.

    Regarding the microphone, Can you please check by saving the video to gallery and play once to see if the audio is fine? (I think the device is not in mute state - some issues reported have this reason - just to confirm)
     
  21. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    Thanks for the reply! Yes I'm aware of the uncontrollable permission dialog, but the weird thing is the microphone sound is only included during the session that the dialog appears.
    Yes I confirmed the videos (except the first time) don't have any microphone sound, even after saved to the the gallery, and the device is not in mute state.
     
  22. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    May I know your device’s iOS version?
     
  23. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    It's iOS 12.3.1.
     
  24. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Can you give a try with default screen recorder that comes with the device? We internally use Unity's replaykit api on iOS. Custom solution is under development currently.

    I'm expecting default screen recorder should behave the same way as the replay kits frameworks functionality. Please confirm after having a test.
     
  25. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    I tried with the default screen recorder, also long-pressed it to enable Microphone(below is what it looks like), and it works to include the microphone. But that doesn't fix the in-app experience. Maybe Replaykit API changes?
    IMG_7478.PNG
     
  26. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    What does selecting camera roll will lead to?
     
  27. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    You don't have to select camera roll, it's checked by default. The build-in screen recorder works fine.

    Did you happen to have iOS 12.3 phone to test it?
     
  28. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    I have tested on iPhone 7 with 12.3.1 and its working fine. However, I don’t see the options you shared with default system recorder.
     
  29. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    Ah really, do the recordings have microphone sound after you close & relaunch the app? If so, would you mind sharing the project? I tried with your demo scene included with plugin but it didn't work for me.
     
  30. tobetobe

    tobetobe

    Joined:
    Nov 22, 2016
    Posts:
    13
    And the screenshot I shared is achieved by 3D Touch or long-press the Screen Record icon in Control Center.
     
  31. matthias_code

    matthias_code

    Joined:
    Feb 4, 2011
    Posts:
    2
    This looks neat! We are currently trying to capture videos of a vuforia-app running (with real world and superimposed objects). Is that a possibility, or is that possibly already blocked? :)
     
  32. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hey do you still face this problem?

    Some of our developers are using this plugin with AR projects (ARCore/ARKit/Vuforia). However on vuforia, one constraint is like you need start recording before your vuforia camera starts. Else vuforia will restarts its own camera automatically. This is due to the unavailability of controlling any parts of vuforia plugin.
     
  33. unity_g7uvJBP4aSHmjw

    unity_g7uvJBP4aSHmjw

    Joined:
    Jul 13, 2019
    Posts:
    2
    I encounter exactly the same issue. May i ask what i can do to workaround this problem?

    Thanks a lot
     
  34. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi, This is a problem that exists with in the Replaykit framework provided by Apple. However you can give a try with our beta which we did sometime back with our own implementation. Please ping us on skype support to grab one.

    Thanks,
    VB Team
     
  35. nsmith1024

    nsmith1024

    Joined:
    Mar 18, 2014
    Posts:
    870
    Hello, I want to buy your screen/record playback, I looked at your documentation and i have questions.

    1. The docs dont say how c# can get the video file after its recorded, because i want the user to be able to edit the video right in the app after its recorded, so i need access to the video file using c#

    2. The docs say everything gets recorded, including the UI. So heres the problem with that. Lets say the user wants to record his game play, so the UI will have a record start button. This record start button will also get recorded since its a UI element and its on the screen. While the video is being recorded, a UI based STOP RECORDED button will have to be always on the screen to stop the recording. I do not want these START/STOP RECORD buttons to appear in the recorded videos. Do you know how to start/stop record without those buttons being in the video?

    Thanks
     
  36. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    This feature is currently in beta and soon will be pushed to store. You can access the beta by passing your invoice to our team. We will update the docs once the new version is on store. Along with it we have Share and Save to gallery features.

    Yes, what ever is visible on screen is recorded. This is because we use internally native frameworks to achieve the recording functionality. For this reason only its possible to have high frame rates even recording happens in the background.

    We see your concern related to the UI for Start/Stop. Even though this particular issue can be solved on iOS with custom UI provision from our end, its not possible on Android at any point. So to make it a compatible feature among platforms, we don't have an option to skip the UI.


    Please let us know if you have any further questions.

    Thanks,
    VB Team
     
  37. visualjoy

    visualjoy

    Joined:
    Aug 23, 2016
    Posts:
    38
    Hi, i get this error trying to build in gradle il2cpp: "A problem occurred evaluating project ':replay_kit_lib'.
    > Could not get unknown property 'GradleVersion' for repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler."

    Any suggestions? Im at Unity 2018.4.8f1.
     
  38. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi,
    If you are on min 2019.1.7 this issue is covered automatically from the store build. Anyways, please update this gradle file and it should work fine.

    Please rename attached file as build.gradle (remove .txt extension as this forum not allowing to upload gradle file) and place it in Assets/Plugins/Android/replay_kit_lib folder.

    Thanks,
    VB Team
     

    Attached Files:

  39. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Just an update related to upcoming version 1.3 . Contact our team for beta version.

    Features:
    • Added GetPreviewFilePath --- Access file path of the recorded video
    • Added SharePreview --- Share recorded video
    • Added SavePreview --- Save recorded video to gallery
    • All microphone issues which are native replay kit issues are resolved though custom implementation on iOS :cool:

    Hope you find these features a great addition to the plugin.


    Cheers,
    VB Team
     
    Last edited: Nov 5, 2019
  40. Deleted User

    Deleted User

    Guest

    Last edited by a moderator: Nov 5, 2019
  41. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    @hamzamunir_unity May I know if its related to Cross Platform Native Plugins or Replay Kit?

    If it's related to CPNP, the warning is harmless as we are not using UIWebkit from more than a year. Most likely there could be an interface being used and will be resolved at compile time. Nothing to worry about the warning and we will make sure it will be addressed in next version.

    Thanks,
    VB Team
     
  42. Deleted User

    Deleted User

    Guest

    Hi,
    I have received this warning after using Cross Platform Replay Kit. I didn't use to receive any such warning before using it. It's really worrying for me because our app has a launch and I don't want to run into any issue with this. Can you please look into this?
     
  43. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    I can confirm that it's not related to Replay Kit. May I know if you have any other changes in the project?
    You can search for UIWebViewDelegate in your project or any references in the exported Xcode project to have a check.

    Thanks,
    VB Team
     
  44. Deleted User

    Deleted User

    Guest

    Hi,

    My app gets stuck sometime while I am recording a video with cross platform replay kit and I get a crashlytic on my firebase. I have attached the screenshot of it: https://ibb.co/PCCd1D3

    Can you please tell me the reason?
     
  45. Deleted User

    Deleted User

    Guest

  46. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hey,
    We sent you an update on skype. Please let us know once you give a try over there.

    Thanks,
    VB Team
     
  47. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi Developers,

    It's Black Friday sale time!

    You can now buy our top selling product, Cross Platform Native Plugins @ 50% off. Please check it out and make good use of the available offer.

    Product Link: http://u3d.as/bV0

    Happy coding
    VB Team
     
  48. durai9

    durai9

    Joined:
    May 18, 2017
    Posts:
    1
    Hai @Voxel-Busters ,
    When i record Video the app is need to the screen recording permission, thus time app was crashed in ios version :13
    but ios version :12 ipad is working. help me
    Thanks.
     
  49. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,952
    Hi
    Please share us the log to have a look.
    Plugin should work fine from ios 11 and above. We don’t have any reports related to the mentioned issue. It would be great if you can send us the log to have a check.

    Thanks,
    VB Team
     
  50. allan-oooh

    allan-oooh

    Joined:
    Mar 29, 2019
    Posts:
    53
    On Android the plugin is capturing the entire screen for all applications not just in my application. This may also be why I get a warning prompt every single time it's activated on Android 10.

    Is it possible to configure the plugin to only capture the content of my application?