This file contains Frequently Asked Questions and their answers. Please feel free to make PRs to amend this file with new questions.
The Twilio library performs acoustic echo cancellation (AEC) using the device hardware by default. But some devices do not implement these audio effects well.
If you are experiencing echo on certain devices please create a ~"type::bug" issue and report your build model with it. After creating an issue, you may also provide a MR for it to get it merged sooner.
You can add the following right before your TwilioProgrammableVideo.connect
call to see in your logging which build model your device has:
TwilioProgrammableVideo.debug(dart: true, native: true);
In the flutter run
log you can search/filter on Build.MODEL
to get the model.
Unfortunately not. We have chosen to use Firebase Cloud Functions for the following reasons:
- We wanted to prove for ourselves it can be done with Cloud Functions
- We definitely wanted to have Status Callbacks and with Cloud Functions the functions are reachable over the internet.
But of course you are free to remove Firebase Cloud Functions and setup an own backend. You should focus on the next things:
- Rewrite the Firebase backend to your own backend.
- Rewrite the
backend_service.dart
to call your backend
There can be several reasons that could throw this exception, mostly misconfiguration. So let's check a few things:
- Are your functions deployed? Which can be found here:
https://console.firebase.google.com/project/<FIREBASE PROJECT ID>/functions/list
. If the functions are not deployed, please deploy them! - If they are deployed, you can see on which URL it is deployed, it will be something like:
https://europe-west1-<FIREBASE PROJECT ID>.cloudfunctions.net/createRoom
. Keep an eye on the Firebase region here. In this URL our region is set toeurope-west1
. If yours is different you need to change some files in the example. - Set the correct region in the
backend_service.dart
- To able to receive Status Callbacks events you also need to reconfigure the Firebase Cloud Functions with the correct region:
Is it possible to only one broadcast and several others subscribe to it? Something like Facebook Live or any other broadcasting features?
Yes this is possible, but not included into any example. But for an heads-up you need to focus on implementing the next things:
- Make sure to set
enableAutomaticSubscription
tofalse
- Make sure when you create a room, you will listen to Status Callbacks on your backend. Like we did in the Firebase Cloud Functions when creating a room.
- Make sure your backend listens to these events.
- In your backend you should filter on the
participant-connected
event. In our example it will be received here. Content would be something like:
{
"RoomStatus":"in-progress",
"RoomType":"group-small",
"RoomSid":"RMxxxxxx",
"RoomName":"m",
"ParticipantStatus":"connected",
"ParticipantIdentity":"yyyy",
"SequenceNumber":"1",
"StatusCallbackEvent":"participant-connected",
"Timestamp":"2020-05-08T04:35:04.373Z",
"ParticipantSid":"PAXXXX",
"AccountSid":"ACXXX"
}
- When you receive and catch the
participant-connected
event you need to implement your magic and logic following the Track Subscriptions documentation.
Yes it is, we recommend you start reading from this point.
Follow the guidelines for adding the proguard-rules.pro
file.
Didn't find what you need? Please head over to our Discord where the community might be able to answer your questions.