fix: Add WebRTCDelegate.cloneStream to adapt to platform differences.

This commit is contained in:
Duan Weiwei 2022-07-09 05:32:51 +00:00 committed by td
parent c070a7ed40
commit 80b7e7c566
2 changed files with 7 additions and 5 deletions

View File

@ -473,9 +473,9 @@ class CallSession {
waitForLocalAVStream = false; waitForLocalAVStream = false;
callFeeds.forEach((element) { callFeeds.forEach((element) async {
// Safari can't send a MediaStream to multiple sources, so clone it addLocalStream(
addLocalStream(element.stream!.clone(), element.purpose); await voip.delegate.cloneStream(element.stream!), element.purpose);
}); });
answer(); answer();
@ -504,8 +504,9 @@ class CallSession {
return; return;
} }
callFeeds.forEach((element) { callFeeds.forEach((element) async {
addLocalStream(element.stream!.clone(), element.purpose); addLocalStream(
await voip.delegate.cloneStream(element.stream!), element.purpose);
}); });
if (requestScreenshareFeed) { if (requestScreenshareFeed) {

View File

@ -13,6 +13,7 @@ abstract class WebRTCDelegate {
Map<String, dynamic> configuration, Map<String, dynamic> configuration,
[Map<String, dynamic> constraints = const {}]); [Map<String, dynamic> constraints = const {}]);
VideoRenderer createRenderer(); VideoRenderer createRenderer();
Future<MediaStream> cloneStream(MediaStream stream);
void playRingtone(); void playRingtone();
void stopRingtone(); void stopRingtone();
void handleNewCall(CallSession session); void handleNewCall(CallSession session);