Search Unity

[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,968
    Prompt happens when even you start recording. We have in the roadmap to show the permission once per launch and soon will update you on that.

    Regarding capturing only for one application, the control is not yet available. As we use system service, it captures the whole screen until you stop recording. Infact, thats one of the reasons why we are getting higher frame rates too.

    However, we are planning for pause/resume functionality which can facilitate your requirement.

    Thanks,
    VB Team
     
    Last edited: Jan 4, 2020
    allan-oooh likes this.
  2. Digicops999

    Digicops999

    Joined:
    Dec 25, 2019
    Posts:
    1
    Hello,
    I am using this plugin for capturing video and save the recorded video on gallery, it saved success but after that i am try to share that recorded video on whatsapp from gallery but its prompt me error say: "Can't send this video choose a different video and try again."
     
  3. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    This is a known issue as we weren’t using aac format for audio. This is fixed in the upcoming version and you can contact our support team on Skype if you would like to try it out.

    Thanks,
    VB Team
     
  4. CCC_akaishi

    CCC_akaishi

    Joined:
    Jan 8, 2013
    Posts:
    2
    Hello
    I have a question
    In the ReplayKitDemo scene
    Crash after doing sharePreview () after recording.
    The error log is as follows.

    *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<UIPopoverPresentationController: 0x10af4bbf0>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'

    Are there any settings you need?

    The equipment used is as follows.
    iPad Pro (3rd generation) 12.9inch
    iOS13.3

    This article uses Google Translate.

    Thank you
     
  5. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    @CCC_akaishi Please contact our support team for the fix. You can see the patch in upcoming version.

    Thanks,
    VB Team
     
  6. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,026
  7. lukas-92

    lukas-92

    Joined:
    Jun 5, 2013
    Posts:
    1
    Hi, I'm having some problems with the ReplayKit on my iPad Mini 2 (iOS 12.4.4). I've built the ReplayKitDemo scene and It works fine, but when I try to save the preview to the gallery it returns the error:

    ReplayKitTest Unable to save video to camera roll!
    [ReplayKit] Saved preview to gallery with error : UNKNOWN

    The preview is available and I can see it using ReplayKitManager.Preview().
    The error is triggered before the permission box popup that is not invoked, anyway I've also tried to request the permission before starting the recording, without no effects.

    Everything works on my iPhone 6 (iOS 12.4.4).
     
  8. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    Hi,
    We have noticed few more reports on this specifically to iPad Mini (12.3, 12.4 versions) alone and we soon get you an update on this.

    Thanks,
    VB Team
     
  9. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
  10. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,026
    Thx!
     
  11. NanaliDev

    NanaliDev

    Joined:
    Oct 22, 2015
    Posts:
    6
    Hi, I want the video pause system. Are there any related examples or functions?
     
  12. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    There is no pause/resume option as of now.
     
  13. LimSangWo0

    LimSangWo0

    Joined:
    Feb 21, 2020
    Posts:
    1
    Hi,
    While buying and using this esset,
    I wanted to record the sound of the app instead of the sound of the microphone. Is there a solution to this?
     
  14. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    On Android there is no possibility to record the app audio. But from Android 10, google provided the API's. We have it in roadmap to support 10 but until then its only possible through microphone. You can check once the demo apk shared on the product page to have a look at the quality. Many devs as of now are able to use it.

    However, on iOS there is no such restriction. It can record app audio directly with/without microphone.

    Thanks,
    VB Team
     
  15. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
  16. hoangst_wolffun

    hoangst_wolffun

    Joined:
    Sep 29, 2018
    Posts:
    13
    Could I test this plugin on Unity editor?
    The error occured when I try on Editor Unity 2019.2.21:
    "NullReferenceException: Object reference not set to an instance of an object
    VoxelBusters.ReplayKit.Internal.ReplayKitDefaultPlatform.StartRecording (System.Boolean enableMicrophone) (at"
     
  17. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    This happens when you don't call Initialise and access any of the plugin's api's. Please make sure you call Initialise method.
     
  18. hoangst_wolffun

    hoangst_wolffun

    Joined:
    Sep 29, 2018
    Posts:
    13
  19. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    If you are expecting a real recording on editor then NO. It just simulates the API on editor to make it easy during development. It won't record a video in editor but acts as if it does and pass a dummy video preview when you request for recorded video. This is for allowing easy testing when working on editor. Else, you may need to deploy on device everytime to see the event callbacks.

    However, on device you get the real functionality. Hope it makes sense.

    Thanks,
    VB Team
     
  20. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    @atorisa Did you try it out with your AR plugins?
     
  21. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,026
    Unity Implementation is enough for my needs.
     
  22. marcin-walus

    marcin-walus

    Joined:
    Feb 9, 2016
    Posts:
    10
    Hello.
    How to use this plugin in project which is using "Assembly Definition" files?
    In my project in Assets folder I have Scripts folder and inside I have "MyProject.asmdef". Even if I add asmdef file inside "Assets/Plugins/VoxelBusters/CrossPlatformReplayKit" and add reference to "MyProject.asmdef" I have problem with building Android project since Editor scripts has references to UnityEditor.
    I cannot find a way how to split this plugin in separate asmdef files to be able to "exclude" editor scripts from Android build.
     
  23. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    Can you please share a sample project to have a look? Please send me a pm.
     
    Last edited: Mar 22, 2020
  24. marcin-walus

    marcin-walus

    Joined:
    Feb 9, 2016
    Posts:
    10
    Hello,
    I shared with you project which demonstrates issue with "Assembly Definition".

    But I have another issue: after building an app and running on device with iOS 13.3.1 method ReplayKitManager.IsRecordingAPIAvailable(); always returns False.

    https://www.icloud.com/iclouddrive/0mMN-oGIjoWPJaURcI8RZFghA#Voxel-Busters-iOS-False

    When I skip this check and execute ReplayKitManager.Initialise(); without verifying if this is true recording starts correctly, and if I call ReplayKitManager.IsRecordingAPIAvailable() again then it returns True;

    Thank you
     
  25. marcin-walus

    marcin-walus

    Joined:
    Feb 9, 2016
    Posts:
    10
    Hello,
    I have one more question: this is exception I'm getting on Galaxy S8 with Android 9 (and also other Android phones)
    https://www.icloud.com/iclouddrive/0TxD_wFydYsKfcb8bvRrv7s-w#Voxel-Busters-AndroidException

    com.voxelbusters.replaykit.internal.ScreenRecordingService.startRecording
    ScreenRecordingService.java, line 221
    java.lang.IllegalStateException: java.lang.IllegalStateException


    I'm using microphone also at the same time (using with NatMic plugin) so do you think it is possible to record video with mic and also use microphone input analysis at the same time (on iOS it works ok).

    Thank you
     
  26. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    @marcin-walus I hope you are on latest 1.4 plugin version.

    Android : Can you please share the complete logcat log?
    iOS : Let us have a quick check and get back to you. Its actually a flag from native which should be as expected.

    We are having a look at asmdef files and get back to you soon.

    Thanks,
    VB Team
     
  27. marcin-walus

    marcin-walus

    Joined:
    Feb 9, 2016
    Posts:
    10
    Thank you very much. I will try to get logcat - the screenshot contains only stracktrace from AppCenter).
    Yes, I'm on version 1.4, I think so... looking at ReplayKitSettings.asset - although, Assets/Plugins/VoxelBusters/CrossPlatformReplayKit/ReleaseNotes.txt, doesn't contain description of version 1.4 :)
     
  28. unity_45y2YK0_r_f0eQ

    unity_45y2YK0_r_f0eQ

    Joined:
    Apr 12, 2019
    Posts:
    4
    Hi, we're experiencing a crash on certain Android 10 devices (not sure if the Android version is related or not), does this one look familiar by any chance? It happens when we try to start a screen recording, immediately after we receive the native OS security alert.
    Code (CSharp):
    1. --------- beginning of crash
    2. 2020-05-07 11:36:28.597 11005-11005/xxx.xxx.xxx E/AndroidRuntime: FATAL EXCEPTION: main
    3.     Process: xxx.xxx.xxx, PID: 11005
    4.     android.app.RemoteServiceException: Bad notification(tag=null, id=111) posted from package xxx.xxx.xxx, crashing app(uid=10262, pid=11005): Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=xxx.xxx.xxx id=0x7f070073) visible user=0 )
    5.        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1945)
    6.        at android.os.Handler.dispatchMessage(Handler.java:107)
    7.        at android.os.Looper.loop(Looper.java:214)
    8.        at android.app.ActivityThread.main(ActivityThread.java:7356)
    9.        at java.lang.reflect.Method.invoke(Native Method)
    10.        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    11.        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
    We can't find a reference in any file to this id, we also tried to remove and replace all notification icons, but to no avail. We hope you can help us out. Thanks in advance.
     
  29. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    We have pushed the patch to store and it will be approved post review. You can contact our support team on skype if you need the patch.
     
  30. unity_45y2YK0_r_f0eQ

    unity_45y2YK0_r_f0eQ

    Joined:
    Apr 12, 2019
    Posts:
    4
    Thanks for your reply. I already did, and also received the patch and we can confirm it works. Thanks a lot. Great service.
     
    Voxel-Busters likes this.
  31. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    Thanks for confirming :) It would be great if you can rate us on asset store.
     
  32. ignacioambrois

    ignacioambrois

    Joined:
    Feb 6, 2017
    Posts:
    7
    Hi @Voxel-Busters, I have a question about the asset.

    Is it possible to control the audio recording such as that the video is saved with audio effects? For example, pitch shifting, reverb, distortion.

    Or would we have to apply those effects after the fact?

    Thanks!
     
  33. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    We don't have audio editing in the plugin. It would be great if you can let us know your use-case to have a check. Please send me a PM.

    Thanks,
    VB Team
     
  34. AntonVikharev

    AntonVikharev

    Joined:
    Jan 17, 2017
    Posts:
    3
    Is it possible to somehow check if permission to capture the screen is granted by the user at the moment or not? The reason why we need it, is because if it is not granted, we would like to show in-game UI dialogue explaining why we need this permission from the user (for replay recording)?
     
  35. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    On Android, usually when ever we call to start recording, the permission dialog will be displayed. But in the recent versions we made it such that we cache some details so that post first recording, it won't ask for permission through the launch session.

    As of now there is no option to check the permission status. We would recommend to show your info popup up just before the first time call of a launch session.

    Thanks,
    VB Team
     
  36. AntonVikharev

    AntonVikharev

    Joined:
    Jan 17, 2017
    Posts:
    3
    Thank you for an answer.

    >As of now there is no option to check the permission status. We would recommend to show your info popup up just before the first time call of a launch session.

    What about this engine's API call?
    https://docs.unity3d.com/ScriptReference/Android.Permission.HasUserAuthorizedPermission.html

    >For permissions which Unity has not predefined you may also manually provide the constant value obtained from the Android documentation here: https://developer.android.com/guide/topics/permissions/overview#permission-groups such as "android.permission.READ_CONTACTS".

    We would try to use it, but could not find which particular android permission name should be provided as an argument here to check if video recording is permitted (without microphone).
     
  37. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    No, this is a system permission and no api exposes it on native.
     
  38. Ikaro88

    Ikaro88

    Joined:
    Jun 6, 2016
    Posts:
    300
    I need to record the internal audio of the game but add in the video the microphone input of the player, can I do that with this plugin?
    there is a way to test the code for this purpose?
     
  39. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    On iOS
    You can record both game audio and microphone (we use replay kit framework internally)
    On Android
    You can record only microphone but not game audio. However the audio routed through microphone is captured too but not as great as a real game audio recording.
     
  40. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,026
    On iOS 14 I can't call ReplayKit.Preview() 2nd & next times because ReplayKit.recordingAvailable flag becomes "false" after 1st call. Can I do it with your asset?
     
  41. Ikaro88

    Ikaro88

    Joined:
    Jun 6, 2016
    Posts:
    300
    On android you can not recorder the internal audio also doing something like that?


    var audio = getcomponent<audiosource>();
    audio.clip = Micropone.start("Built-i Microphone",true,10,44100);
    audio.Play();
     
  42. Sergio1024

    Sergio1024

    Joined:
    Sep 24, 2020
    Posts:
    3
    Hi there.
    I try to check ReplayKit using 2020.1.12f1 clean insalled and empty project with demo scene ReplayKitDemo. I deploy dpk on my Redmi Note 8T so it run, but nothing works except 'initialize' button. When I push it twise, status text changed to "ReplayKitManager.DidInitialiseEvent : Initialisation Success", but if I push any other buttons nothing happens.
    What I do wrong?
     
  43. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    Hey, We pushed an update for it already for 2020 and should be available soon. Please ping our team for assistance.

    Thanks,
    VB Team
     
  44. Sergio1024

    Sergio1024

    Joined:
    Sep 24, 2020
    Posts:
    3
    Maybe using 2019.4.14f1 (LTS) fix this problem?
     
  45. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    Yep, will do.
     
  46. Sergio1024

    Sergio1024

    Joined:
    Sep 24, 2020
    Posts:
    3
    It realy helped )
     
    Last edited: Nov 10, 2020
    Voxel-Busters likes this.
  47. MaxxRafen

    MaxxRafen

    Joined:
    Apr 7, 2014
    Posts:
    31
    Hi,

    I know you said that the recording confirmation should only come up once per session, but it seems to come up once per scene for me when recording is started. Can you confirm this is expected?

    I also can't seem to get much consistency between landscape/portrait mode when exporting/sharing the video. Is there any way to set it to landscape explicitly?
     
  48. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    It should be per session. Please share us the replay kit version.

    It respects the rotation settings set in unity settings. Is yours set to auto rotation?

    Thanks,
    VB Team
     
  49. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,026
    There are still No updates on Asset Store. If the asset stuck in the moderating process, you need to resubmit with another Unity version as Asset Store says.
     
  50. Voxel-Busters

    Voxel-Busters

    Joined:
    Feb 25, 2015
    Posts:
    1,968
    Yea! You are right. Let me resubmit as its been long.
     
    makaka-org likes this.