Code Monkey home page Code Monkey logo

agoraio / basic-video-call Goto Github PK

View Code? Open in Web Editor NEW
691.0 67.0 1.0K 24.45 MB

Sample app to join/leave a channel, mute/unmute, enable/disable the video, and switch between front/rear cameras.

License: MIT License

Java 7.60% Kotlin 0.62% C++ 35.87% C 1.98% Objective-C 4.77% Swift 13.34% JavaScript 5.64% CSS 24.45% HTML 2.32% Makefile 0.03% Shell 0.35% TypeScript 1.36% Python 0.34% QMake 0.11% Batchfile 0.25% PowerShell 0.01% Vue 0.29% SCSS 0.65% Ruby 0.02%
groupchat chatroom videochat agora

basic-video-call's Introduction

Basic Video Call

Other Languages: 简体中文 | 한글

Agora provides a set of sample applications demonstrating how to integrate the Agora Video SDK for:

Platforms Supported

1-to-1 Video Calls

Sample applications for 1-to-1 video calls are provided for Android, iOS, MacOS, and Windows.

The 1-to-1 video call sample applications, demonstrate how to:

  • Join / leave a channel
  • Mute / unmute audio
  • Enable / disable video
  • Switch camera views
Project Folder Name Platform Description
Agora-Android-Tutorial-1to1 Android (Java) Android tutorial for 1-to-1 video calls
Agora-Android-Tutorial-Kotlin-1to1 Android (Kotlin) Android tutorial for 1-to-1 video calls using Kotlin
Agora-iOS-Tutorial-Objective-C-1to1 iOS (Objective-C) iOS tutorial for 1-to-1 video calls using Objective-C
Agora-iOS-Tutorial-Swift-1to1 iOS (Swift) iOS tutorial for 1-to-1 video calls using Swift
Agora-macOS-Tutorial-Objective-C-1to1 MacOS (Objective-C) MacOS tutorial for 1-to-1 video calls using Objective-C
Agora-macOS-Tutorial-Swift-1to1 MacOS (Swift) MacOS tutorial for 1-to-1 video calls using Swift
Agora-Windows-Tutorial-1to1 Windows Windows tutorial for 1-to-1 video calls
Agora-Web-Tutorial-1to1 Web Web tutorial for 1-to-1 video calls

Group Video Calls

Sample applications for group video calls are provided for Web, Android, iOS, MacOS, Windows and Linux.

The group video call sample applications, demonstrate how to:

  • Join / leave a channel
  • Mute / unmute audio
  • Enable / disable video
  • Change cameras
  • Send messages to a channel
  • Setup resolution, frame rate and bit rate
Project Folder Name Platform Description
OpenVideoCall-Web Web Web tutorial for group video calls
OpenVideoCall-Android Android Android tutorial for group video calls
OpenVideoCall-iOS iOS (Swift) iOS tutorial for group video calls using Swift
OpenVideoCall-iOS-Objective-C iOS (Objective-C) iOS tutorial for group video calls using Objective-C
OpenVideoCall-macOS MacOS (Swift) MacOS tutorial for group video calls using Swift
OpenVideoCall-Windows Windows Windows tutorial for group video calls
OpenVideoCall-Linux Linux Linux tutorial for group video calls

Contact Us

  • For potential issues, take a look at our FAQ first
  • Dive into Agora SDK Samples to see more tutorials
  • Take a look at Agora Use Case for more complicated real use case
  • Repositories managed by developer communities can be found at Agora Community
  • You can find full API documentation at Document Center
  • If you encounter problems during integration, you can ask question in Stack Overflow
  • You can file bugs about this sample at issue

License

All sample applications are licensed under the MIT License (MIT). View the license.

basic-video-call's People

Contributors

baluoteliz avatar brianxcli avatar cavansu avatar clucheng avatar cmder avatar ddhp avatar digitallysavvy avatar eugenegodun avatar guohai avatar icywind avatar jamesneimanconsulting avatar lichking-2234 avatar lx021 avatar matrixbirds avatar menthays avatar newjins-papa avatar plutoless avatar prwrl avatar samyak-jain avatar sbd021 avatar shellgrace avatar sidsharma27 avatar sorui avatar sunz10 avatar technophilic avatar tongjiangyong avatar xuchdeid avatar zhangthree avatar zontan avatar zshbleaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

basic-video-call's Issues

One-to-One-Video/Agora-Android-Tutorial-1to1 text relocation error

We have the crashes with our app which uses the agora video calls on the Android tables with Intel Atom processors (x86) (e.g. ALCO RCT6973W43 with Android 6.0.1).

java.lang.UnsatisfiedLinkError: dlopen failed: : has text relocations
java.lang.Runtime.loadLibrary()Runtime.java:372
java.lang.System.loadLibrary()System.java:1076
io.agora.rtc.internal.RtcEngineImpl.initializeNativeLibs()RtcEngineImpl.java:272
io.agora.rtc.RtcEngine.create()RtcEngine.java:24

I've also tested the Agora-Android-Tutorial-1to1 on the emulators and got the next error:

--------- beginning of crash
2019-01-31 10:49:59.076 6081-6081/io.agora.tutorials1v1vcall E/AndroidRuntime: FATAL EXCEPTION: main
Process: io.agora.tutorials1v1vcall, PID: 6081
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/io.agora.tutorials1v1vcall-OJzE5g_omQBLFVYHYnIE1w==/lib/x86/libagora-rtc-sdk-jni.so" has text relocations (https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#Text-Relocations-Enforced-for-API-level-23)
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1669)
at io.agora.rtc.internal.RtcEngineImpl.initializeNativeLibs(RtcEngineImpl.java:272)
at io.agora.rtc.RtcEngine.create(RtcEngine.java:24)
at io.agora.tutorials1v1vcall.VideoChatViewActivity.initializeAgoraEngine(VideoChatViewActivity.java:187)
at io.agora.tutorials1v1vcall.VideoChatViewActivity.initAgoraEngineAndJoinChannel(VideoChatViewActivity.java:74)
at io.agora.tutorials1v1vcall.VideoChatViewActivity.onCreate(VideoChatViewActivity.java:69)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-01-31 10:49:59.102 6081-6081/io.agora.tutorials1v1vcall I/Process: Sending signal. PID: 6081 SIG: 9

Could you help us with this issue?

Windows: Improve method names and variables

•	Some typos in the code method names and variables. For example: LeaveCahnnel()
•	Some code blocks repeat unnecessary lines of code. For example: CAgoraCameraManager::GetCurDeviceID()
•	Some method names are misleading. For example: CAgoraObject::EnableAudioRecording does’t enable/disable recording. It actually starts and stops recording
•	It’s unclear what EnableWhiteboardFeq() does.
•	EnableNetworkTest is actually enabling/disabling the last mile test

how to generate unique video call links

i have installed the video web call sample , to join call both parties should have to click on the join part and keep the channel value same . i wonder as it would be possible to generate direct video call link so that if user click on it the could start call with one another.

Platform : web platform ( php html js )

cannot open source file

when build the sample code, it always report
Error 1 error C1083: Cannot open include file: 'IAgoraRtcEngine.h': No such file or directory c:\openvideocall-windows\openvideocall\stdafx.h

image

tried both VS 2019 & 2013.
include additional path is checked

"'_streamInitID' of undefined" error when upgrading from 2.8.0 to 2.9.0 (Web)

I attempted to upgrade from 2.8.0 to 2.9.0 and without changing any of my underlying code I get the following error when Stream.init is called. Everything works fine when I use 2.8.0

main.js:7023 TypeError: Cannot set property '_streamInitID' of undefined
    at Re.t.init (vendor.js:140641)
    at Observable._subscribe (vendor.js:224061)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (vendor.js:222772)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (vendor.js:222758)
    at vendor.js:234754
    at subscribeToResult (vendor.js:234931)
    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._innerSub (vendor.js:229635)
    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (vendor.js:229629)
    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._next (vendor.js:229612)
    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (vendor.js:223391)

I followed the Quickstart Guide but I'll include my sequence here.

client = createClient(this.config);

bindCallback(client.init)(appId)

bindCallback(client.join)(null, channelId, uid)

navigator.mediaDevices.getUserMedia({video: videoValue, audio: audioValue}))
    return from(navigator.mediaDevices.getUserMedia({video: videoValue, audio: audioValue})).pipe(
      flatMap(mediaStream => {
        that.videoSource = mediaStream.getVideoTracks()[0];
        that.audioSource = mediaStream.getAudioTracks()[0];
        specs.videoSource = that.videoSource;
        specs.audioSource = that.audioSource;
        const localStream = createStream(specs); 
        that.localStream = localStream;
        return bindCallback(localStream.init)();
      }),
 client.publish(this.localStream);

The error occurs when I go to initialize my localStream (localStream.init)

Other details that may be relavent.

  • I'm wrapping all calls with RxJS bindCallback to return observables
  • This code is part of a larger Angular 7 project.

Any thoughts?

Thanks!

Where is mGridVideoViewContainer notified when new user joins group video call?

Hi,

In https://github.com/AgoraIO/Basic-Video-Call/blob/master/Group-Video/OpenVideoCall-Android/app/src/main/java/io/agora/openvcall/ui/CallActivity.java
I understand that mGridVideoViewContainer contains the recyclerviews of surfaceview of new user's video on video call. I have read through the file and cannot find where mGridVideoViewContainer is being updated when new user joins the video call. I can clearly see that when mUidsList.put(uid, local) is called inside the function "onJoinChannelSuccess" but mGridVideoViewContainer is not updated.

Can you please tell me where mGridVideoViewContainer is updated when user joins group video chat?

Thank you.

Sincerely,
Victor

Agora-Web-Tutorial-1to1 运行时报错

项目运行起来之后无法加入直播,报错信息:ERR_STATIC_USE_DYANMIC_KE
image
文档上有说是静态厂商使用了动态 Key,但是怎么生成静态Key?

Switch user screens

Hi,

I went through the documentation but I couldn't find anything about switching the screens, what I need to do is load the first user that joins the call in the big canvas and move the current user in a small box.
Can you help me in what direction to take?

Thanks,
Bogi

Turning camera off after call ended

Hi,
I read through the docs but I couldn't find any mentioning about how to turn off the camera after I end the call I all the following function but the camera is still left on.

 localStream.disableAudio();
    localStream.disableVideo();
    agoraClient.leave(
      function() {
        console.log("Leavel channel successfully");
        agoraClient.unpublish(localStream, function(err) {
          console.log("Unpublish local stream failed" + err);
        });
      },
      function(err) {
        console.log("Leave channel failed");
      }
    );

Thanks for any ideas.

leaked ServiceConnection android.bluetooth.BluetoothHeadset

2019-07-01 10:54:04.382 25931-25931/io.agora.tutorials1v1vcall E/ActivityThread: Activity io.agora.tutorials1v1vcall.VideoChatViewActivity has leaked ServiceConnection android.bluetooth.BluetoothHeadset$2@c5d235b that was originally bound here
    android.app.ServiceConnectionLeaked: Activity io.agora.tutorials1v1vcall.VideoChatViewActivity has leaked ServiceConnection android.bluetooth.BluetoothHeadset$2@c5d235b that was originally bound here
        at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1344)
        at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1239)
        at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1487)
        at android.app.ContextImpl.bindServiceAsUser(ContextImpl.java:1467)
        at android.bluetooth.BluetoothHeadset.doBind(BluetoothHeadset.java:305)
        at android.bluetooth.BluetoothHeadset.<init>(BluetoothHeadset.java:298)
        at android.bluetooth.BluetoothAdapter.getProfileProxy(BluetoothAdapter.java:1936)
        at io.agora.rtc.internal.AudioRoutingController.initialize(AudioRoutingController.java:674)
        at io.agora.rtc.internal.RtcEngineImpl.<init>(RtcEngineImpl.java:347)
        at io.agora.rtc.RtcEngine.create(RtcEngine.java:61)
        at io.agora.tutorials1v1vcall.VideoChatViewActivity.initializeAgoraEngine(VideoChatViewActivity.java:177)
        at io.agora.tutorials1v1vcall.VideoChatViewActivity.initAgoraEngineAndJoinChannel(VideoChatViewActivity.java:79)
        at io.agora.tutorials1v1vcall.VideoChatViewActivity.onCreate(VideoChatViewActivity.java:74)
        at android.app.Activity.performCreate(Activity.java:6875)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1514)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:163)
        at android.app.ActivityThread.main(ActivityThread.java:6221)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

How to replicate:

  • Press the call end button and read the service leak message.

Devices tested on:
Pixel Android 9 API 28 - Can't reproduce.
Redmi 5A Android 7.1.2 API 25 - memory leak happens.

SDK 2.8.2 App get crashing

Hi,

After updating the latest SDK 2.8.2 App get crashing.

cannot initialize Agora Rtc Engine, error=101

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int io.agora.rtc.RtcEngine.setVideoEncoderConfiguration(io.agora.rtc.video.VideoEncoderConfiguration)' on a null object reference

If using 2.3.0 ist working fine.

android code

please provide link for download only android code

Switching between audio/ video call

Hi,
I am using AgoraSdk for video call. We want to implement a feature to enable user switching between audio to video call and vice versa. But there is no documentation regarding that. Please help

Support: Webhook in Agora

Hi folks, currently I am looking for webhooks of the video call, I tried to do research but unfortunately can't find any info related to webhook.
How can I get a duration of video call after the end? for example, user can turn off PC and need a webhook to trigger me a duration of a call

iOS Group Video Call : Unable to find uid of remote stream when create channel using joinChannelByUserAccount method

I have created a channel using

`- (int)joinChannelByUserAccount:(NSString * _Nonnull)userAccount
                          token:(NSString * _Nullable)token
                      channelId:(NSString * _Nonnull)channelId
                    joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock;` 

But when someone joined the same channel using account, then how can we find which user joined the channel by using account?

All delegate methods in documentation for remote stream requires passing uid, but since I am using account instead of uid, I am not able to match which user joined / left channel. Is there a way in which I can find which user joined/left the channel using account instead of uid ?

视频宽高改变不及时

我这边新作的功能是拖动窗口,动态改变播放段,接收端的视频窗口大小,里面的surfaceView已经改变了,但是数据确不能及时的改变,导致有黑框?

群视频demo导入编译报错

D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\ui\MainActivity.java:182: 错误: 找不到符号
public void onLastmileProbeResult(final IRtcEngineEventHandler.LastmileProbeResult result) {
^
符号: 类 LastmileProbeResult
位置: 类 IRtcEngineEventHandler
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\model\WorkerThread.java:156: 错误: 找不到符号
public void onLastmileProbeResult(LastmileProbeResult result) {
^
符号: 类 LastmileProbeResult
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\model\WorkerThread.java:155: 错误: 方法不会覆盖或实现超类型的方法
@OverRide
^
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\model\MyEngineEventHandler.java:129: 错误: 找不到符号
public void onLastmileProbeResult(IRtcEngineEventHandler.LastmileProbeResult result){
^
符号: 类 LastmileProbeResult
位置: 类 IRtcEngineEventHandler
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\model\MyEngineEventHandler.java:128: 错误: 方法不会覆盖或实现超类型的方法
@OverRide
^
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\model\MyEngineEventHandler.java:223: 错误: 方法不会覆盖或实现超类型的方法
@OverRide
^
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\model\MyEngineEventHandler.java:225: 错误: 找不到符号
super.onAudioMixingStateChanged(state, errorCode);
^
符号: 方法 onAudioMixingStateChanged(int,int)
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\ui\ChatActivity.java:693: 错误: 找不到符号
rtcEngine().setRemoteUserPriority(uid, Constants.USER_PRIORITY_HIGH);
^
符号: 变量 USER_PRIORITY_HIGH
位置: 类 Constants
D:\androidDemo\OpenVideoCall-Android\app\src\main\java\io\agora\openvcall\ui\ChatActivity

Agora web SDK在IOS12手机上使用safari的问题

我参照项目 Basic-Video-Call / Group-Video / OpenVideoCall-Web 做了修改,教师用firefox共享桌面和语音,学生用电脑可以看到画面和声音。
但是在IOS12 iPhone6s上使用safari观看存在以下两个问题:

  1. 学生只能看到画面,听不到声音。
  2. 学生在iPhone6s上使用 safari浏览器调用 SDK的方法 localStream.init 方法之后没有回调。
localStream = streamInit(uid, options, config);
    // enableDualStream();
    localStream.init(
      () => {
        addStream(localStream, true);
        client.publish(localStream, err => {
          alert('error!'+ err)
          localLog('Publish local stream error: ' + err);
        });
      },
      err => {
        localLog('getUserMedia failed', err);
      }
    );

请问是不是Agora web SDK本身不支持手机上使用safari进行互动直播?

  • 学生端JS代码:

meeting2.txt

  • 教师端JS代码:

meeting1.txt

Check which camera is active, Front/ Rear

We have a requirement, where we would allow user to start video call directly from Front/Rear camera with feature to switch Camera. Currently, RTC switches the camera but we couldnt find a way to check which camera is currently active on RTC stream

Volume problem on Android 9 (Pie)

Everything works correctly on Android < 9, but on the Pie we have a problem: volume doesn't change at all. Even in Do not disturb mode sounds still playing.

Agora version: 2.3.0, devices: all phones with Android Pie

getting error : INVALID_VENDOR_KEY

i followed all steps when i click JOIN button i get error

Agora-SDK [ERROR]: [9BA0E] Get server node failed [INVALID_VENDOR_KEY] https://ap-web-3.agora.io/api/v1 INVALID_VENDOR_KEY

i copied and pasted correct app id from my dashboard project

thanks

Group-video call error on execute

Group video call.
When running the sample, with npm run dev, the following errors are reported in the browser console:
14: 08: 10: 704 Now-SDK [ERROR]: [100CC] User join failed [ERR_DYNAMIC_USE_STATIC_KE]
4: 08: 10: 720 Now-SDK [ERROR]: [88812] User join failed [ERR_DYNAMIC_USE_STATIC_KE]
Uncaught (in promise) ERR_DYNAMIC_USE_STATIC_KE
My environment is:
Windows 7
Node 11.11.0
Npm: 6.9.0
The example does not trigger the camera or even the sound.
How should I correct the reported errors?

mac 本地首帧的size为什么总是960*720

设置了 320x240

  • (void)setupVideo {
    [self.agoraKit enableVideo];

    AgoraVideoEncoderConfiguration *configuration =
    [[AgoraVideoEncoderConfiguration alloc] initWithSize:AgoraVideoDimension320x240
    frameRate:AgoraVideoFrameRateFps15
    bitrate:AgoraVideoBitrateStandard
    orientationMode:AgoraVideoOutputOrientationModeAdaptative];

    [self.agoraKit setVideoEncoderConfiguration:configuration];
    }

但在 firstLocalVideoFrameWithSize 中的size一直是960*720

  • (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalVideoFrameWithSize:(CGSize)size elapsed:(NSInteger)elapsed {
    NSLog(@"size : %d, %d", (int)size.width, (int)size.height);
    }

Group Video / OpenVideoCall-macOS: remote video not shown when transitioning from 3 to 4 participants

With 3 total participants (self + 2 remote), the layout of the tiles is displayed correctly.

When adding a 4th participant (self + 3 remote), the newly joined participant does not get displayed.

When adding a 5th participant (self + 4 remote), a third row is displayed and now ALL participants are displayed correctly.

When removing the 5th participant, 4 total participants are displayed correctly.

So the bug occurs when going from 3 to 4 total participants.

Handle Cancelled call scenario.

We are using PushKit for sending notifcations on iOS. When we call a user :-

  1. The sender immediately logs in Signalling kit and Joins channel on RTC.
  2. The receiver gets a pushkit notification, it shows a CallKIT UI and also logs in to the Agora signalling.
  3. The receiver on accepting joins channel and updates the UI.

But if the sender cancels the call before the receiver can accept, and then receiver picks the call, there is a black screen.

Is there is a way to identify if used has cancelled the call?

We tried the delegate callback for RTC : didOfflineOfUid, but there is no callback.

Error in Open IOS Call

In IOS, after going through all of the steps, I get this error:

Showing Recent Issues
No profile for team '48TB6ZZL5S' matching 'AgoraIODev2019' found: Xcode couldn't find any provisioning profiles matching '48TB6ZZL5S/AgoraIODev2019'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the Signing & Capabilities tab of the target editor.

I am using an Iphone 6 with the latest version of IOS

Build command failed.

/Basic-Video-Call-master/Group-Video/OpenVideoCall-Android/app/src/main/cpp/video_preprocessing_plugin_jni.cpp:5:10: fatal error: 'agora/IAgoraRtcEngine.h' file not found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.