Recording feature
- Client has to send the following flags to enable Automatic Recording Feature in the SDK. Send True for the following flags when creating VidyoFragment as mentioned above
- JioMeetSdkManager.IS_AUTOMATIC_RECORDING_ENABLED
- JioMeetSdkManager.IS_HOST
- At Least one user in the call has to pass IS_HOST as true and all other participants have to pass this as false. This has to be handled at the client end. Make sure to call only one participant as IS_HOST true and rest all as false.
- Recording automatically gets started when One Host and one non Host are in the call. During this, the UI gets updates and the same is reflected to all participants. At this time, a History_Id is generated for this particular meeting. This can be obtained in the following
method.getHistoryID
- This is a overridden method which you can see in your Activity where you have implemented
JioMeetConnectionListener
- Please save the History ID, Meeting ID and the Meeting Pin of every meeting in your storage mechanism. These three are mandatorily required to fetch the Recorded Video from JioServer.
- To fetch the recording right after the meeting ends, please do the following.
Create an instance of FetchRecordingData
val fetchRecordingData = FetchRecordingData(this)
Then call the method getListRecording which takes three arguments - Meeting ID, Meeting Pin and History ID in the order and observe for the response.
To download the recorded video, please pass the URL that was received in the previous API. Along with the AppId and AuthToken for authentication. The response will be of the binary data. You can view the results on the PostMan or you can implement a downloadManager on the app level to download the video. Following curl request will suffice for the job.
curl --location --request GET 'url' \
--header 'app: yourAppID' \
--header 'authToken: yourAppToken' \
--header 'Cookie: GCLB=CMGd5bexkoHCBw'
AppLevel Gradle dependencies
Note: JioMeet supports these beloe listed versions and later
Okhttp3
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
testImplementation 'org.mockito:mockito-core:3.5.9'
testImplementation 'run.qontract:qontract-core:0.22.0'
rxJava
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
Room Library
implementation('androidx.room:room-runtime:2.3.0')
implementation('androidx.room:room-compiler:2.3.0')
implementation('androidx.room:room-ktx:2.3.0')
implementation('androidx.room:room-testing:2.3.0')
annotationProcessor "androidx.room:room-compiler:2.3.0"
Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
coil
implementation('io.coil-kt:coil:1.0.0-rc3')
implementation('io.coil-kt:coil-svg:1.0.0-rc3')
implementation('androidx.work:work-runtime-ktx:2.5.0')
implementation('androidx.work:work-runtime-ktx:2.5.0')
Paging Library
implementation('androidx.paging:paging-runtime:2.1.2')
implementation('androidx.paging:paging-runtime-ktx:2.1.2')
implementation('androidx.paging:paging-rxjava2:2.1.2')
Security - For EncryptedSharedPreferences
implementation('androidx.security:security-crypto:1.1.0-alpha03')
Markwon
implementation 'io.noties.markwon:core:4.6.0'
implementation 'io.noties.markwon:editor:4.6.0'
implementation 'io.noties.markwon:inline-parser:4.6.0'
implementation 'io.noties.markwon:ext-strikethrough:4.6.0'
implementation 'io.noties.markwon:html:4.6.0'
implementation 'io.noties.markwon:linkify:4.6.0'
implementation 'io.noties.markwon:simple-ext:4.6.0'
Lifecycle dependencies
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
implementation 'androidx.lifecycle:lifecycle-process:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
Logging
implementation('com.jakewharton.timber:timber:4.7.1')
SQLCipher
implementation('net.zetetic:android-database-sqlcipher:4.4.0')