twilio / twilio-video-app-android Goto Github PK
View Code? Open in Web Editor NEWA collaboration application built with the Twilio Video Android SDK
License: Apache License 2.0
A collaboration application built with the Twilio Video Android SDK
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
I want using twilio to make a video call later in day with time
Is it possible to use a custom camera source instead of using the camera source from the SDK when
initializing the localvideo track
cameraCapturer = new CameraCapturer(this, CameraSource.FRONT_CAMERA);
LocalVideoTrack localVideoTrack = LocalVideoTrack.create(context, true, cameraCapturer);
My usecase is to add a background/bokhe effect to the video before it is rendering on the view.So the user have a control over this.like he can turn on /off his background blurring.So i though about modifying the camerasource before it is giving to a localvideotrack.I saw most of the cameracapture functions expecting a camerasource of type same from the SDK.Can you recommend some suggestions for this
Screen comes as black screen randomly for remote participants
In the video call, the screen comes as a black screen randomly from remote participants. It doesn't always happen but happens randomly. Faced more frequently in version 7.0.0 and in version 6.0.0 it's happening randomly.
To Reproduce
Doesn't occur reliably, but mostly happens in the first-time call.
Connect to the room
Remote participant connect to room with/without videoTrack published
Expected behavior
The remote participant screen shouldn't go off as a black screen.
Android Device:
Video Android SDK:
This bug happened on a Samsung Galaxy Note Fan Edition running android 6.0.
I use these versions:
implementation "com.twilio:video-android:6.3.1"
implementation "com.twilio:video-android-ktx:6.3.1"
implementation "com.twilio:audioswitch:1.1.2"
As stated in the twilio docs delivery of DataTrack messages is not guaranteed
Is there any way to check for confirmation? What are your thoughts on using datatrack to implement sending of messages between participants if there is no way to guarantee the receipt of these messages?
Do you have any guidelines as to what are some appropriate values to set for maxPacketLifeTime
and maxRetransmits
?
Thank you
When I passing my token created from my backend in single video call sample is working but when using this sample for multi call unable to login
Hello!
I had deployed twilio for basic 1-1 video calling.
Link : https://github.com/twilio/video-quickstart-android/tree/master/quickstartKotlin
I also have deployed user alert facility using firebase setup as per twilio example using this link :
https://github.com/twilio/video-quickstart-android/tree/master/exampleVideoInvite
My question is : Is it possible to convert this application into video conferencing app? using existing controls?
Or I need to do complete different setup with controls shown in example?
I have implemented multi-party video nowI want to mute and unmute some participant in room.
is there any way i can mute or unmute other participant in room
Before filing an issue please check that the issue is not already addressed by the following:
Please ensure that you are not sharing any
Personally Identifiable Information(PII)
or sensitive account information (API keys, credentials, etc.) when reporting an issue.
[Description of the issue]
// Code that help reproduce the issue
[What you expect to happen]
[What actually happens]
[What percentage of the time does it reproduce?]
// Log output when issue occurs
All relevant version information for issue.
[eg. 1.0.2]
[eg. 18]
[eg. Nexus 5]
Describe the bug
I am following your README for CLI setup. The deploy command doesn't work.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It should start video:deploy
Video Android SDK (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
Whenever I attempt to build the project I receive the error:
Could not find org.jetbrains.kotlin:kotlin-stdlib:1.4-M2-eap-23.
Required by:
project :app > org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.72
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
Build successfully and run on hardware/emulator.
Video Android SDK:
Additional context
I am new to Android app development so this may well be a basic issue; however, I believe I followed the documentation correctly, so it may just be a case of a small addition to the docs. But currently, I am still unable to build successfully.
Description
We are using Twilio Android programmable sample which works fine but in AndroidX based on the error logs it seems like audioDeviceSelector.activate(); is crashing and therefore after participants join a room they don't see or hear each other.
Below is the sample code were AndroidX is used:
https://github.com/mukeshocpc/TwillioSample
Device Info
Galaxy Note8
Model #: SM-N950U
Android Version: 7.1.1
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
'videoAndroid' : '5.6.0',
'audioSwitch' : '0.1.0'
`Future connect(ConnectOptions connectOptions) async {
assert(connectOptions != null);
if (await requestPermissionForCameraAndMicrophone()) {
final bool wasRequestSuccessful = await methodChannel.invokeMethod(
'connect',
<String, Object>{'connectOptions': connectOptions.toMap()});
// print('Room Connected Successfully: $roomId');
return wasRequestSuccessful;
}
throw Exception('Permissions not granted');
}`
that code give no any response in flutter api min version 21
and API Level 24 that time it's working fine .
Hello there,
I want to get identify current speaker in conference call, is there any way i can get current speaker in group call?
I have read about Detecting the Dominant Speaker and i'm using below code
try {
val connectOptionsBuilder = ConnectOptions.Builder(ACCESS_TOKEN_SERVER)
.enableDominantSpeaker(true)
.roomName(roomName)
room = Video.connect(context, connectOptionsBuilder.build(), roomListener)
roomListener
} catch (e: Exception) {
handleTokenException(e)
}
but i don't get any update inside onDominantSpeakerChanged() method
Is your feature request related to a problem? Please describe.
As reported in issue #87 and #76, we should provide a better user experience for handling an incoming phone call while in a video room.
Describe the solution you'd like
After looking at a few other collaboration apps that handle this scenario, we've decided to exit the video room as a solution to this problem.
Additional context
(Internal only) JIRA Ticket
##Description
Getting black screen for 2 or 3 seconds in primary video view when rendering remote video track after onVideo TrackSubscribed(screen off/on)
##Steps to Reproduce
Twilio SDK version : 6.1.0
Audio Switch : 1.1.0
Testing Device model : Oneplus 7, Motorola g3
Os Version : Android 10, Android 6
Please give any suggestion or source to fix this issue. Thanks in advance...!
Is it possible to add a common chat kind of functionality/ sending some different event to participants to this flow?
Before filing an issue please check that the issue is not already addressed by the following:
Please ensure that you are not sharing any
Personally Identifiable Information(PII)
or sensitive account information (API keys, credentials, etc.) when reporting an issue.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Android Device (please complete the following information):
Video Android SDK (please complete the following information):
Additional context
Add any other context about the problem here.
Hi,
I want to implement manual recording on off feature using the android app.
Is it possible?
If possible then how can I do this, any suggestions?
please help
Is your feature request related to a problem? Please describe.
Currently it is difficult to see text on a an Android phone while viewing a screen share.
Describe the solution you'd like
The ability for the user to zoom in on the primary participant view when a remote participant is sharing their screen.
There are multiple issues or questions i want to ask : -
Please Suggest
The call keeps going even after app is killed
I have been trying to integrate Twilio SDK in my app. I came across a scenario where I need to mute audio and stop video capture when phone call received. Does the SDK provide any callback and how do I handle it?
When receiver is busy with another voice or video call, i.e user's device microphone and camera is already acquired by another app. If you can suggest how to handle this situation.
Also, is there any way to detect from caller's end that receiver is busy with another call?
I need to add call ringing at the receiver end for the incoming video call in the android app.
How I can achieve it by Twilio?
Thank you.
I'm facing a similar issue to this. But no concrete solution was found. Looking forward to getting a reply if this is an issue or am I
doing something wrong here?
Thanks
I run this code. I can not login to the app. How to get the name and passcode and in the sample. which credentials I have to change to use this sample in my app. Please help me on this
Describe the bug
When running the README.md of this application, running the command twilio rtc:apps:video:deploy --authentication passcode
will result in an error twilio-cli encountered an unexpected error. To report this issue, execute the command with the "-l debug" flag, then copy the output to a new issue here: https://github.com/twilio/twilio-cli/issues
.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Pop-OS 19.04 x86_64
Twilio CLI: twilio-cli/1.12.0 linux-x64 node-v12.16.1
NodeJS: 12.16.1
npm: 6.13.4
nvm: 0.35.3
Running with the debug flag gives:
twilio rtc:apps:video:deploy --authentication passcode -l debug [DEBUG] Config File: /home/gferreira/.twilio-cli/config.json [DEBUG] Using profile: goncalo-pop [DEBUG] -- BEGIN Twilio API Request -- [DEBUG] GET https://serverless.twilio.com/v1/Services [DEBUG] User-Agent: @twilio/cli-core/4.6.0 (twilio-node/3.42.0, node.js v12.16.1, linux 5.0.0-21-generic x64, rtc:apps:video:deploy) [DEBUG] -- END Twilio API Request -- [DEBUG] response.statusCode: 200 [DEBUG] response.headers: {"date":"Wed, 01 Apr 2020 22:11:32 GMT","content-type":"application/json; charset=utf-8; charset=utf-8","content-length":"1067","connection":"close","twilio-concurrent-requests":"1","twilio-request-id":"RQea6e243479e14b04bf18e1538dc8c856","twilio-request-duration":"0.034","access-control-allow-origin":"*","access-control-allow-headers":"Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since","access-control-allow-methods":"GET, POST, DELETE, OPTIONS","access-control-expose-headers":"ETag","access-control-allow-credentials":"true","x-powered-by":"AT-5000","x-shenanigans":"none","x-home-region":"us1","x-api-domain":"serverless.twilio.com","strict-transport-security":"max-age=31536000"} [DEBUG] -- BEGIN Twilio API Request -- [DEBUG] GET https://serverless.twilio.com/v1/Services/ZSf9c1875b44881004a043b620f0bba67b/Environments [DEBUG] User-Agent: @twilio/cli-core/4.6.0 (twilio-node/3.42.0, node.js v12.16.1, linux 5.0.0-21-generic x64, rtc:apps:video:deploy) [DEBUG] -- END Twilio API Request -- [DEBUG] response.statusCode: 200 [DEBUG] response.headers: {"date":"Wed, 01 Apr 2020 22:11:32 GMT","content-type":"application/json; charset=utf-8; charset=utf-8","content-length":"380","connection":"close","twilio-concurrent-requests":"1","twilio-request-id":"RQ5ef2a61053ca4e24acdc9a5386a2aa35","twilio-request-duration":"0.034","access-control-allow-origin":"*","access-control-allow-headers":"Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since","access-control-allow-methods":"GET, POST, DELETE, OPTIONS","access-control-expose-headers":"ETag","access-control-allow-credentials":"true","x-powered-by":"AT-5000","x-shenanigans":"none","x-home-region":"us1","x-api-domain":"serverless.twilio.com","strict-transport-security":"max-age=31536000"} » twilio-cli encountered an unexpected error. To report this issue, execute the command with the "-l debug" flag, then copy the output to a new issue here: https://github.com/twilio/twilio-cli/issues [DEBUG] Cannot read property 'sid' of undefined [DEBUG] TypeError: Cannot read property 'sid' of undefined at DeployCommand.getAppInfo (/home/gferreira/.twilio-cli/node_modules/@twilio-labs/plugin-rtc/src/helpers.js:76:64) at processTicksAndRejections (internal/process/task_queues.js:97:5) at async DeployCommand.run (/home/gferreira/.twilio-cli/node_modules/@twilio-labs/plugin-rtc/src/commands/rtc/apps/video/deploy.js:18:20) at async DeployCommand._run (/home/gferreira/.twilio-cli/node_modules/@oclif/command/lib/command.js:44:20) at async Config.runCommand (/home/gferreira/.nvm/versions/node/v12.16.1/lib/node_modules/twilio-cli/node_modules/@oclif/config/lib/config.js:160:9) at async Main.run (/home/gferreira/.nvm/versions/node/v12.16.1/lib/node_modules/twilio-cli/node_modules/@oclif/command/lib/main.js:21:9) at async Main._run (/home/gferreira/.nvm/versions/node/v12.16.1/lib/node_modules/twilio-cli/node_modules/@oclif/command/lib/command.js:44:20)
Hey Kindly help us out from this.
As I am getting below crashes on the camera, while video is rendering on the ongoing call.
**E/CameraCaptureSession: Session 0: Exception while stopping repeating: android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): cancelRequest:456: Camera 1: Error clearing streaming request: Function not implemented (-38)** at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:799) at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:97) at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1138) at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526) at android.hardware.camera2.impl.CameraCaptureSessionImpl$2.onDisconnected(CameraCaptureSessionImpl.java:737) at android.hardware.camera2.impl.CameraDeviceImpl$7.run(CameraDeviceImpl.java:239)
Sometimes, this kind of crashes also am getting. These things are happening because of camera
**CameraCaptureSession: Session 0: Exception while stopping repeating: android.hardware.camera2.CameraAccessException: CAMERA_DISCONNECTED (2): checkPidStatus:2069: The camera device has been disconnected** at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:834) at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:97) at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1214) at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:539) at androidx.camera.camera2.internal.SynchronizedCaptureSessionBaseImpl.close(SynchronizedCaptureSessionBaseImpl.java:435) at androidx.camera.camera2.internal.CaptureSession.release(CaptureSession.java:438) at androidx.camera.camera2.internal.Camera2CameraImpl.releaseSession(Camera2CameraImpl.java:483) at androidx.camera.camera2.internal.Camera2CameraImpl.resetCaptureSession(Camera2CameraImpl.java:1098) at androidx.camera.camera2.internal.Camera2CameraImpl.tryDetachUseCases(Camera2CameraImpl.java:797) at androidx.camera.camera2.internal.Camera2CameraImpl.lambda$detachUseCases$12$Camera2CameraImpl(Camera2CameraImpl.java:768)
If camera has been working fine for 10mins, later its automatically redirects to Freeze state.
Under Camera2Capturer Class
@Override public void onCameraFreezed(final String errorMessage) { reportError(new Exception(Exception.CAMERA_FROZE, errorMessage)); }
Please suggest me , how to resolve this.
Before filing an issue please check that the issue is not already addressed by the following:
Please ensure that you are not sharing any
Personally Identifiable Information(PII)
or sensitive account information (API keys, credentials, etc.) when reporting an issue.
Describe the bug
When a user denies camera or audio permissions and chooses either the toggle local video/audio buttons, the app crashes.
To Reproduce
Steps to reproduce the behavior:
IllegalStateException
due to LocalAudioTrack
or LocalVideoTrack
being called without the proper permissions grantedExpected behavior
A user might expect a message to display notifying them to enable the permissions in the settings for the application in order to toggle the video/audio.
Screenshots
If applicable, add screenshots to help explain your problem.
Android Device (please complete the following information):
Video Android SDK (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
I'm getting this exception.
Caused by: java.lang.IllegalStateException: Camera2Capturer is not supported on this device
at com.twilio.video.Preconditions.checkState(Preconditions.java:447)
at com.twilio.video.Camera2Capturer.<init>(Camera2Capturer.java:216)
at com.twilio.video.Camera2Capturer.<init>(Camera2Capturer.java:202)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Android Device (please complete the following information):
Video Android SDK (please complete the following information):
Additional context
Since Android 8.0 (API 26) allows activities to launch in PictureInPicture mode it would be very useful and helpful that you integrate this in the twilio-video-app example that you have.
Greetings! I've recently got quite a few crashes from the production version of the app because the app could not create camera capturers. I'm using CameraCapturerCompat class from Twilio Video App to select appropriate CameraCapturer implementation. But it seems like few devices can't start image capturing. The range of affected OS versions is 7.0 - 10, and the affected devices are different.
Unfortunately, I don't have access to any of these devices, and my own test devices don't have this issue. I've managed to get this crash reproduced by removing the check for PRIVATE image format within isCameraSupported method within CameraCapturerCompat. So my guess is that few devices that might not support this image format.
So my question is this - what is the reasoning, from SDK's point of view, to have this check?
Hi,
In settings > advanced there is a feature "Record participants on connect" which default value is false (unchecked in settings > advanced).
But still the video and audio is recording.
I need to turn off recording from app, not from Twillio console, is it possible?
I am in debugging/development state now, not in production.
Thanks,
Asif
We added a Twilio video call facility on our application based on the quick start app. And we struggled to handle call events in one scenario, need your suggestions to fix the issue.
During a video call between two users, One user can kill the application, and again open the app, how to show the call screen resuming(without UI state changes)?
We check the scenario with the skype android application, it's working while the app is killed and open(Call screen is alive although the app is killed).
Twilio SDK version : 6.1.0
Audio Switch : 1.1.0
Testing Device model : Oneplus 7
Os Version : Android 10
Please give any suggestion or source to fix this issue. Thanks in advance...!
Hi Guys,
I have some queries like:
It would be possible to use our own camera source from which we get the frames instead of using the camera source provided by Twilio.
The use case I am asking about would be to be able to use our own camera with which to capture the frames in order to process them with a better quality than the one we get now. As we are doing now, we get the frames provided by Twilio through the camera capture of the SDK.
To create the video track we have created a camera (CamaraPropia) that extends CameraCapturer and overrides the methods provided by that class.
cameraCapturer = new CamaraPropia(context, CameraCapturer.CameraSource.BACK_CAMERA, videoFrameListener);
VideoConstraints videoConstraints = new VideoConstraints.Builder()
.aspectRatio(AspectRatio.ASPECT_RATIO_16_9)
.build();
localVideoTrack = LocalVideoTrack.create(context, true, cameraCapturer, videoConstraints);
localVideoTrack.addRenderer(videoView);
All the posts I've seen refer to Twilio 6.x version, in my case we are using a 5.1.0 version.
We are not much familiar with kotlin and we develop our chat app with Twilio conversation in java(android). And we want to add video calls in-app. So any Java code available?
Describe the bug
When participant connects to a room without internal camera and microphone using only connected web camera twilio sdk doesn't detect any microphones and other participants can't hear anything
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Remote audio track from this device is available
Android Device (please complete the following information):
Video Android SDK (please complete the following information):
Additional context
Room includes 2 participants, onDominantSpeakerChanged is called with remote participant sid related to device without microphone. Also I have checked web cameras in Google Camera application https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera , therefore They can be considered as supported by android
Please help me out to find whether the local video view/participant view showing on the PrimaryView, we needs to find the current primary rendering video belongs to which participants?
As I am having multiple participants with video rendering on the bottom of the screen in thumbnail view.
But I would like to know, which participant has rendering in the PrimaryView(i.e in the Maximized view)
I am not getting how to use this with push notification
When trying to login, i get the following exception:
"couldn't find DSO to load: libfb.so"
Looking a little bit i found that this has to do with SoLoader library. I tried to upgrade the library but i can't find the implementation entry in app build.gradle file.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Navigate to lobby activity
Android Device (please complete the following information):
Hi,
Please let me know, how to record a room video call with audio also.
As of now in the twilio console, i can see the logs of the recorded files.
But the recorded files are separate, based on the type of recording (audio or video).
Also I have gone through the composition to mix up the audio. Unable to add that code in recording feature.
Kindly help me out, how to mix the audio and video in the single call recording in the room.
As I Attached a screenshot, I can see only the type either as video or audio. Both files needs to integrate into single file.
Thanks..
Before filing an issue please check that the issue is not already addressed by the following:
Please ensure that you are not sharing any
Personally Identifiable Information(PII)
or sensitive account information (API keys, credentials, etc.) when reporting an issue.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Android Device (please complete the following information):
Video Android SDK (please complete the following information):
Additional context
Add any other context about the problem here.
While connecting Twilio video app on android , multi user participation not working .
and when connect on two mobiles one will be disconnect automatically another one will be connected.
Please suggest for this issue.
My code working fine with the passcode. But I want to Login with the access token but it will not work for me? Please explain the more details for the same
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.