Giter Club home page Giter Club logo

agoraio / advanced-video Goto Github PK

View Code? Open in Web Editor NEW
263.0 62.0 339.0 77.92 MB

License: MIT License

Java 4.84% Swift 3.35% Metal 0.09% C++ 76.04% C 6.99% Objective-C 0.59% Objective-C++ 0.97% JavaScript 3.53% CSS 0.65% HTML 0.67% CMake 0.06% TypeScript 1.76% Python 0.06% Ruby 0.01% Shell 0.10% PowerShell 0.01% Batchfile 0.06% SCSS 0.24%
augmented-reality-applications callkit hooking groupcall screensharing agora connection-service rtc pip video

advanced-video's Introduction

Advanced Video

This Project has been deprecated and archived. We will stop maintain it. Please look at https://github.com/AgoraIO/API-Examples for latest Agora Samples.

English | 中文

Agora provides a set of sample applications demonstrating how to get advanced video features integrated into your application using the Agora Video SDK.

Sample applications are provided for Android, iOS, macOS, Web, and Windows.

Platforms Supported

Project Folder Name Platform Description
Andorid Android Android advanced features including custom video sources, switch video inputs, customized packet encryption, push interface
iOS&macOS iOS & macOS iOS & macOS advanced features including large group video chat, custom media device, raw data API, screen sharing, video source, AR kit.
Windows Windows Windows advanced features including media source, screen sharing, string account, large group video chat.
Web Web Web advanced features including custom video source, screen sharing, large group video chat, remote control.

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.

advanced-video's People

Contributors

agorabeck avatar baluoteliz avatar brianxcli avatar cavansu avatar charleslee-ice avatar dependabot[bot] avatar digitallysavvy avatar disoul avatar dongsettle avatar dubian0608 avatar echooj avatar guohai avatar jamesneimanconsulting avatar jemycheung avatar jonassu avatar lichking-2234 avatar matrixbirds avatar menthays avatar minmingqi avatar mrterriblenight avatar plutoless avatar prwrl avatar sbd021 avatar shellgrace avatar sunz10 avatar the-machine-tango avatar tongjiangyong avatar wdx700 avatar williamdxz avatar zxc524580210 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

advanced-video's Issues

Manual screen sharing shows green screen in iOS 13. For iOS 12 it is working fine

I am sending custom buffer and other side I am receiving and showing into screen.
Everything is working fine until iOS 12.

When I have tested the same in iOS13 It shows following output

Simulator Screen Shot - iPhone 8 - 2019-07-18 at 18 21 54

This is how I create Pixel buffer and send using ARVideoSource

    func copyPixelbufferFromCGImageProvider(image: CGImage) -> CVPixelBuffer? {
        let dataProvider: CGDataProvider? = image.dataProvider
        let data: CFData? = dataProvider?.data
        let baseAddress = CFDataGetBytePtr(data!)
        
        /**
         * We own the copied CFData which will back the CVPixelBuffer, thus the data's lifetime is bound to the buffer.
         * We will use a CVPixelBufferReleaseBytesCallback callback in order to release the CFData when the buffer dies.
         **/
        let unmanagedData = Unmanaged<CFData>.passRetained(data!)
        var pixelBuffer: CVPixelBuffer? = nil
        let status = CVPixelBufferCreateWithBytes(nil,
                                                  image.width,
                                                  image.height,
                                                  kCVPixelFormatType_32BGRA,
                                                  UnsafeMutableRawPointer( mutating: baseAddress!),
                                                  image.bytesPerRow,
                                                  { releaseContext, baseAddress in
                                                    let contextData = Unmanaged<CFData>.fromOpaque(releaseContext!)
                                                    contextData.release() },
                                                  unmanagedData.toOpaque(),
                                                  nil,
                                                  &pixelBuffer)
        
        if (status != kCVReturnSuccess) {
            return nil;
        }
        
        return pixelBuffer
    }

SDK Version 2.8.0
Xcode 11 beta 4
iOS 13.0 Simulator

Any help or suggestion ?

缺少文件

Advanced-Video/Capture Raw Video Data/Agora-Plugin-Raw-Data-API-Android-Java/raw-data-api-java/src/main/cpp/media_preprocessing_plugin_jni.cpp

c++中,引用了
#include "include/IAgoraMediaEngine.h"
#include "include/IAgoraRtcEngine.h"

但是,文件在include里面是没有的,不知道楼主自己编译成功过没有,如果有,希望能发布一些。so和jar提供使用。或者暂时先补齐文件。

Can't login into the Android app

I have downloaded the Android- Openduo project of Agora and read all the documentation and also i managed to run this app successfully on my android device but in the login activity it asks me to enter the "Please input your account" in numeric only, i entered some random digits but couldn't be able to login. I don't know what account i should input in the edit text. I tried to contact with Agora team but their team giving me irrelevant replied in two or three days. Please help solve me this issue, i am attaching the screenshot of the error. SO please have a look at it.
output

Login Error

Error: RTM Login failed LOGIN_ERR_INVALID_TOKEN
please guide me how to fix this.

AudioSession doesn't switch from AirPods to Speaker

I use AirPods and want to switch from it to speaker
inside method
func rtcEngine(_ engine: AgoraRtcEngineKit, didAudioRouteChanged routing: AgoraAudioOutputRouting)
I receive 3 and then 5
AgoraAudioOutputRoutingSpeakerphone = 3,
/** Bluetooth headset. */
AgoraAudioOutputRoutingHeadsetBluetooth = 5

AudioSession configuration is

   try? AVAudioSession.sharedInstance().setCategory(
            AVAudioSession.Category.playAndRecord,
            mode: AVAudioSession.Mode.voiceChat,
            options: [.mixWithOthers, .allowBluetooth]
        )
        
        agoraKit.setAudioSessionOperationRestriction(.configureSession)
        agoraKit.setParameters("{\"che.audio.use.callkit\":true}")

Agora-Screen-Sharing-Android无法共享屏幕

测试项目:Agora-Screen-Sharing-Android
测试设备:华为m2-801W(android6.0) 和 Firefly-RK3399(android7.1.2)
SDK版本:v2.9.2
测试情况:

  1. 华为m2-801W 屏幕共享成功
  2. Firefly-RK3399 屏幕共享失败

异常出现的代码片段:
ScreenSharingService类mSCS.getConsumer()为空

mScreenCapture.mImgTexSrcConnector.connect(new SinkConnector<ImgTexFrame>() {
            @Override
            public void onFormatChanged(Object obj) {
                Log.d(LOG_TAG, "onFormatChanged " + obj.toString());
            }
            @Override
            public void onFrameAvailable(ImgTexFrame frame) {
                Log.d(LOG_TAG, "onFrameAvailable " + frame.toString());
                if (mRtcEngine == null) {
                    return;
                }
                Log.d(LOG_TAG, "Consumer is null ? " + (mSCS.getConsumer() == null));

                if( mSCS.getConsumer() != null){
                    mSCS.getConsumer().consumeTextureFrame(
                            frame.mTextureId,
                            AgoraVideoFrame.FORMAT_TEXTURE_OES,
                            frame.mFormat.mWidth,
                            frame.mFormat.mHeight,
                            0, frame.pts, frame.mTexMatrix);
                }

            }
        });

AudioSession doesn't work correctly

Hi, everyone I have a problem with AudioSession when I receive incoming call during mobile call
Steps how to reproduce

  1. I'm talking on mobile
  2. I receive an incoming call from Agora
  3. I put a mobile call on hold
  4. I join to the channel
  5. I get 2 errors
1009: Audio Device Module: An error occurs in starting the playback device. 
AgoraErrorCodeAdmStartPlayout = 1009,

1012: Audio Device Module: An error occurs in starting the recording device. 
AgoraErrorCodeAdmStartRecording = 1012

I call

  func joinChannel(
        byToken token: String,
        channelId: String,
        callUserID: UInt,
        participants: [CallParticipant]
    ) {
        self.participants = participants
        AgoraRtcEngineKit.destroy()
        let agoraKit = AgoraRtcEngineKit.sharedEngine(
            withAppId: "myPrivateKey",
            delegate: self
        )
        self.agoraKit = agoraKit
        agoraKit.setChannelProfile(.communication)
        agoraKit.enableWebSdkInteroperability(true)
        try? AVAudioSession.sharedInstance().setCategory(
                            AVAudioSession.Category.playAndRecord,
                            mode: AVAudioSession.Mode.voiceChat,
                            options: [.duckOthers, .allowBluetoothA2DP, .allowBluetooth]
                        )
        agoraKit.setAudioSessionOperationRestriction(.configureSession)
        agoraKit.setParameters("{\"che.audio.use.callkit\":true}")
        
        agoraKit.enableAudio()
        agoraKit.joinChannel(byToken: token, channelId: channelId, info: nil, uid: callUserID, joinSuccess: nil)
    }

inside

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction)

Video is not working iOS to Android after enable EncryptionSecret

Video is working fine iOS to iOS and Android to Android. But not working on cross platform. Below is the demo code:

`func loadAgoraKit() {

    agoraKit = AgoraRtcEngineKit.sharedEngine(withAppId: Utils.appId, delegate: self)
    agoraKit.enableDualStreamMode(true)
    agoraKit.setChannelProfile(.communication)
    
    if voipCall.hasVideo{
        agoraKit.setEnableSpeakerphone(true)
    }else{
        agoraKit.setEnableSpeakerphone(false)
    }
    
    agoraKit.enableAudio()
    
    if voipCall.hasVideo {
        
        agoraKit.enableVideo()
        agoraKit.setEnableSpeakerphone(true)
        agoraKit.setVideoProfile(.portrait360P, swapWidthAndHeight: true)
        
        addLocalSession()
        agoraKit.startPreview()
    }

    agoraKit.setEncryptionSecret(self.voipCall.chamberPassword)
    agoraKit.setEncryptionMode(EncryptionType.xts128.modeString())

    let code = agoraKit.joinChannel(byToken: self.voipCall.agoraChannelKey, channelId: self.voipCall.chamberName, info: nil, uid: self.voipCall.uid ?? 0, joinSuccess: nil)
    if code == 0 {
        setIdleTimerActive(false)
    }
    agoraKit.createDataStream(&dataStream, reliable: true, ordered: true)
}`

UnsatisfiedLinkError

Hello,
I am getting error when trying to run Large video group chat for android I am getting following error in logcat:

2019-04-25 19:08:18.271 4823-4839/io.agora.largegroupcall E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2019-04-25 19:08:18.271 4823-4839/io.agora.largegroupcall E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2019-04-25 19:08:36.173 4823-4844/io.agora.largegroupcall E/AndroidRuntime: FATAL EXCEPTION: Thread-4
Process: io.agora.largegroupcall, PID: 4823
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/io.agora.largegroupcall-1/base.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_dependencies_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_0_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_1_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_2_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_3_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_4_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_5_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_6_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_7_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_8_apk.apk", zip file "/data/app/io.agora.largegroupcall-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/io.agora.largegroupcall-1/lib/x86_64, /system/lib64, /vendor/lib64]]] couldn't find "libagora-rtc-sdk-jni.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:972)
at java.lang.System.loadLibrary(System.java:1530)
at io.agora.rtc.internal.RtcEngineImpl.loadNativeLibrary(RtcEngineImpl.java:276)
at io.agora.rtc.internal.RtcEngineImpl.initializeNativeLibs(RtcEngineImpl.java:282)
at io.agora.rtc.RtcEngine.create(RtcEngine.java:58)
at io.agora.largegroupcall.model.WorkerThread.ensureRtcEngineReadyLock(WorkerThread.java:225)
at io.agora.largegroupcall.model.WorkerThread.run(WorkerThread.java:104)

Please guide me what is going worng?

Openlive project integration

Hey i have integrated the project Openlive for ARcore but having some issue. it says missing class VideoEncoderConfiguration. can you please help on that !
thank you

Latest sdk not working in 32 bit devices

I used latest sdk . Properly working in 64 bit architecture devices .but 32 bit architucture device not working. "An UnsatisfiedLinkError couldn't find "libapm-plugin-raw-data- api-java.so " Can you help me

Regarding a bug of Agora OpenDuo for iOS (Objective C)

We found a bug. That is, when an iPhone of iOS 13 Beta 7 is called at the first time, it receives the call properly. But after that, it can not receive any calling for the second, third and more times. Please view the video at the link below which shows the bug.

http://1251260831.vod2.myqcloud.com/8f899cbcvodgzp1251260831/8fa49c725285890793128631286/3ejtvwW07CMA.mov

application sharing

when i put app in background i am also able to share my mobile screen and other applications as well ; what can i do so that i can only share agora application view . not the whole mobile

screen sharing via Wifi Direct

I tried the screen sharing functionality with just P2P wifi connection but it does not work. I suppose the default setting only supports wifi. Which file should I look into in order to support screen sharing via WiFi Direct?

How to blur remote video?

We want to blur the remote video feed before showing to the user. Is this possible using MediaPreProcessing and callback? Or not how can this be archived? Could you please give us your assistance? Thank you

CallKit speaker button has incorrect selection state

Hi I use CallKit framework and I know that you guys use incorrect options of AudioSession
You must use this code to fix it.

 try AVAudioSession.sharedInstance().setCategory(
                    .playAndRecord,
                    mode: .voiceChat,
                    options: [.duckOthers, .allowBluetoothA2DP, .allowBluetooth]
                )

This (.allowBluetoothA2DP) option fix incorrect behaviour
Links of issue:

https://stackoverflow.com/questions/48023629/abnormal-behavior-of-speaker-button-on-system-provided-call-screen/48806266#48806266

https://stackoverflow.com/questions/49170274/callkit-loudspeaker-bug-how-whatsapp-fixed-it

Could you fix as soon as possible?

where to find IAgoraRtcEngine2.h

Advanced-Video\Capture-Raw-Video-Data\Agora-Media-Source-Windows\AgoraMediaSource\AgoraObject.h includes
#include "../SDK/include/IAgoraRtcEngine2.h" in line 5.

but the sdk https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows(x86)_v2_9_0_FULL.zip
only has the following header files.
AgoraBase.h
IAgoraLiveEngine.h
IAgoraLivePublisher.h
IAgoraLiveSubscriber.h
IAgoraMediaEngine.h
IAgoraRtcEngine.h
IAgoraService.h

the readme.md says :
"For master branch
You need IAgoraRtcEngine2.h header file."
Where to find IAgoraRtcEngine2.h?

sample-raw-data运行问题

本地运行 sample-raw-data 、lib-raw-data、lib-component 三个模块的app,完全没有执行 loadAgoraRtcEnginePlugin 和 unloadAgoraRtcEnginePlugin 方法,怎么回事???

readme

不知道怎么用,为什么没有文档

Can not registerVideoFrameObserver.

Issue in Agora-Plugin-Raw-Data-API-Android-Java:
When I use call native method Java_io_agora_rtc_plugin_rawdata_MediaPreProcessing_setCallback

The mediaEngine in cpp code is always false, so I can`t registerVideoFrameObserver.

 agora::util::AutoPtr<agora::media::IMediaEngine> mediaEngine;
    mediaEngine.queryInterface(rtcEngine, agora::INTERFACE_ID_TYPE::AGORA_IID_MEDIA_ENGINE);
 if (mediaEngine) {
        mediaEngine->registerVideoFrameObserver(&s_videoFrameObserver);
        mediaEngine->registerAudioFrameObserver(&s_audioFrameObserver);
        __android_log_print(ANDROID_LOG_DEBUG, "agora-raw-data-plugin", "mediaEngine registerVideoFrameObserver");
    }

App crashed due to virtual method 'io.agora.rtc.mediaio.IVideoFrameConsumer com.agora.arcore.AgoraVideoSource.getConsumer()

i am getting this exception
java.lang.NullPointerException: Attempt to invoke virtual method 'io.agora.rtc.mediaio.IVideoFrameConsumer com.agora.arcore.AgoraVideoSource.getConsumer()' on a null object reference
at com.agora.arcore.AgoraARCoreActivity.sendARView(AgoraARCoreActivity.java:654)
at com.agora.arcore.AgoraARCoreActivity.access$1200(AgoraARCoreActivity.java:66)
at com.agora.arcore.AgoraARCoreActivity$13.onPixelCopyFinished(AgoraARCoreActivity.java:643)

Call is not receiving on other end

I have used Calling with ConnectionService Sample app, I can make call form one end but the call is not receiving on other end. I can here ringing sound in calling end.

handle voip push notification for calling

I am trying to join a channel when voip push received using apple pushkit. and then I try to create data stream to send and receive the status message like call ringing, call connected , call disconnected but some time data stream work and some time not,

Could you please provide any other alternative that Can i used to pass the status or string ?. If not then what should I do to use data stream efficiently.

When App is killed and device is locked and push received 9 out of 10 cases stream message not received other side

When App is killed but device not locked and push received 2-3 out of 10 cases stream message not received other side

It is very important feature and we can't compromise with this. If you could help will be helpful.

Cannot integrate raw-data-api-java module

Build command failed.
Error while executing process C:\Users\cmake.exe with arguments {--build D:\raw-data-api-java.cxx\cmake\debug\armeabi-v7a --target apm-plugin-raw-data-api-java}

D:\raw-data-api-java\src\main\cpp\media_preprocessing_plugin_jni.cpp:4:10: fatal error: 'include/IAgoraMediaEngine.h' file not found

#include "include/IAgoraMediaEngine.h"

     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 error generated.

ninja: build stopped: subcommand failed.

BUG- iOS Data stream not working both side

I am facing issue.

I am trying to create a data stream to pass string as Data between two persons.

Audience (not working)

var dataStreamID:Int = -1

Here how I setup Agora

 func loadAgoraKit() {
       rtcEngine = AgoraRtcEngineKit.sharedEngine(withAppId: KeyCenter.AppId, delegate: self)
       rtcEngine.setChannelProfile(.liveBroadcasting)
       rtcEngine.enableVideo()
       rtcEngine.enableDualStreamMode(true)
       
       rtcEngine.setClientRole(.audience)
       rtcEngine.setDefaultAudioRouteToSpeakerphone(true)
       
       let code = rtcEngine.joinChannel(byToken: nil, channelId: channelName, info: nil, uid: 0, joinSuccess: nil)
       if code != 0 {
           DispatchQueue.main.async(execute: {
               self.alert(string: "Join channel failed: \(code)")
           })
       }
       
       
       
       rtcEngine.createDataStream(&dataStreamID, reliable: true, ordered: true)
       rtcEngine.setEnableSpeakerphone(true)

       
   }

On some  Screen tapped  I am sending text 

 
   let success = rtcEngine.sendStreamMessage(dataStreamID, data: "Double Tapped".data(using: .utf8)!)
       print(success) // This is 0 

I have checked success is 0

After some time this method calls

  func rtcEngine(_ engine: AgoraRtcEngineKit, didOccurStreamMessageErrorFromUid uid: UInt, streamId: Int, error: Int, missed: Int, cached: Int) {
       print(#function)
   }

With Error Code 117

Boradcaster (Working)

In broadcaster I have following code.

 static let sharedAgoraEngine: AgoraRtcEngineKit = {
        let kit = AgoraRtcEngineKit.sharedEngine(withAppId: KeyCenter.AppId, delegate: delegateHandler)
        kit.setChannelProfile(.liveBroadcasting)
        kit.setClientRole(.broadcaster)
        
        kit.enableVideo()
        kit.setVideoSource(videoSource)
        kit.enableDualStreamMode(true)
        kit.setDefaultAudioRouteToSpeakerphone(true)

      //  kit.setExternalVideoSource(true, useTexture: true, pushMode: true)
        let videoConfig = AgoraVideoEncoderConfiguration(size: videoDimension,
                                                         frameRate: .fps24,
                                                         bitrate: AgoraVideoBitrateStandard,
                                                         orientationMode: .adaptative)
        kit.setVideoEncoderConfiguration(videoConfig)
        
     //   AgoraAudioProcessing.registerAudioPreprocessing(kit)
      //  kit.setRecordingAudioFrameParametersWithSampleRate(44100, channel: 1, mode: .readWrite, samplesPerCall: 1024)
     //   kit.setParameters("{\"che.audio.external_device\":true}")

        
        kit.enableAudio()
      
//        kit.muteAllRemoteVideoStreams(true)
//        kit.muteAllRemoteAudioStreams(true)
        
        return kit
    }()
    
    static func startBroadcast(to channel: String) {
             
        let code =  sharedAgoraEngine.joinChannel(byToken: nil, channelId: channel, info: nil, uid: 0) { (string, intvalue, intValue2) in
            print("Test")
            print(intvalue)
        }

        
        print(code)
        
        sharedAgoraEngine.createDataStream(&dataStreamID, reliable: true, ordered: true)
        sharedAgoraEngine.setEnableSpeakerphone(true)
       
    }

I am able to send the message . Broadcaster ==> Audience but
not Audience ==> Broadcaster

Please help

Gradle Build and Java Class Question

Question 1:

What exactly this library do with the issue #73. What is the issue I can't find it.

implementation('com.github.tony19:logback-android-classic:1.1.1-4') {
        // workaround issue #73
        exclude group: 'com.google.android', module: 'android'
    }

Question 2:

Is this line really required because it showing an error/warning with "Device support but APK only support armeabi-v7a, x86

ndk {
            abiFilters "armeabi-v7a", "x86" // DO NOT MODIFY THIS LINE, IT'S UPDATED BY BUILD MACHINE AUTOMATICALLY.
        }

I do understand that this is for 32-bit devices. Is there any conflict in building and running the app? Like a 32-bit device may get a 64-bit app by accident?

Question 3:

Does RecyclerViewNoBugLinearLayoutManager.class still need today with AndroidX? This is from LargeGroupVideoChat sample for Android.

By the way I'm starting to love Agora. Great samples, APIs, dashboard, and documentation should definitely recommend this to anyone.

Crashes on Android 5 - Agora v2.9.1

Here is the stack trace. Could you please fix it ASAP? We would like to update to latest version.
I redacted the package name to ..
But it's all the same.

10-10 15:35:02.211 18411-18411/com.***.*** D/agora-raw-data-plugin: loadAgoraRtcEnginePlugin 10-10 15:35:02.221 18411-18411/com.***.*** A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x4 in tid 18411 (com.***.***) 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer-JNI: isPlaying: 1 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer-JNI: getCurrentPosition: 4341 (msec) 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer: getDuration_l 10-10 15:35:02.276 2159-2159/? V/MediaPlayerService: getDuration 10-10 15:35:02.276 2159-2159/? V/MediaPlayerService: [18] getDuration = 6059 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer-JNI: getDuration: 6059 (msec) 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer: getDuration_l 10-10 15:35:02.276 2159-6377/? V/MediaPlayerService: getDuration 10-10 15:35:02.276 2159-6377/? V/MediaPlayerService: [18] getDuration = 6059 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer-JNI: getDuration: 6059 (msec) 10-10 15:35:02.276 18411-20098/com.***.*** V/MediaPlayer-JNI: isPlaying: 1 10-10 15:35:02.291 2155-2155/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 10-10 15:35:02.291 2155-2155/? I/DEBUG: Build fingerprint: 'samsung/j2ltejv/j2lte:5.1.1/LMY47X/J200FXXU3AQL1:user/release-keys' 10-10 15:35:02.291 2155-2155/? I/DEBUG: Revision: '4' 10-10 15:35:02.291 2155-2155/? I/DEBUG: ABI: 'arm' 10-10 15:35:02.291 2155-2155/? I/DEBUG: pid: 18411, tid: 18411, name: com.***.*** >>> com.***.*** <<< 10-10 15:35:02.291 2155-2155/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4 10-10 15:35:02.346 2155-2155/? I/DEBUG: r0 84c48430 r1 00000004 r2 00000000 r3 83d2ce21 10-10 15:35:02.346 2155-2155/? I/DEBUG: r4 b6df9df4 r5 76f914f8 r6 13d8e900 r7 becd0b40 10-10 15:35:02.346 2155-2155/? I/DEBUG: r8 1392a780 r9 b4427800 sl 13aaab40 fp 0000016d 10-10 15:35:02.346 2155-2155/? I/DEBUG: ip 84c48430 sp becd0b18 lr 8fa756b9 pc 83d2ce3a cpsr 60070030 10-10 15:35:02.346 2155-2155/? I/DEBUG: backtrace: 10-10 15:35:02.346 2155-2155/? I/DEBUG: #00 pc 00083e3a /data/app/com.***.***-1/lib/arm/libagora-rtc-sdk-jni.so 10-10 15:35:02.346 2155-2155/? I/DEBUG: #01 pc 0000c6b7 /data/app/com.***.***-1/lib/arm/libapm-plugin-raw-data-api-java.so (_ZN5agora4util7AutoPtrINS_5media12IMediaEngineEE14queryInterfaceINS_3rtc10IRtcEngineENS_17INTERFACE_ID_TYPEEEEbPT_T0_+70) 10-10 15:35:02.346 2155-2155/? I/DEBUG: #02 pc 0000c3e7 /data/app/com.***.***-1/lib/arm/libapm-plugin-raw-data-api-java.so (Java_io_agora_rtc_plugin_rawdata_MediaPreProcessing_setCallback+90) 10-10 15:35:02.346 2155-2155/? I/DEBUG: #03 pc 02133019 /data/dalvik-cache/arm/data@app@com.***.***[email protected]@classes.dex 10-10 15:35:03.166 2159-20078/? I/NuPlayerDecoder: End of Stream 10-10 15:35:03.166 2159-20078/? I/NuPlayerDecoder: End of Stream 10-10 15:35:03.346 2159-20074/? I/NuPlayerRenderer: onQueueEOS audio finalResult : -1011 10-10 15:35:03.706 2159-20074/? I/NuPlayerRenderer: [audio] notifyEOS() End of Stream, delayUs : 340990 10-10 15:35:03.706 2159-20074/? V/AudioSink: stop 10-10 15:35:04.051 2159-20072/? I/NuPlayerRenderer: reachedAudioEOS (1) 10-10 15:35:04.051 2159-20072/? V/NuPlayer: reached audio EOS 10-10 15:35:04.061 2159-2414/? D/AudioSAEffectSec: EffectRelease - session 165 10-10 15:35:04.061 2159-2414/? D/AudioSAEffectSec: EffectRelease : All effects are no longer instantiated 10-10 15:35:04.061 2159-2414/? D/AudioSAEffectSec: AudioSAEffectSec::releaseSA 10-10 15:35:04.061 2159-2414/? D/AudioSASec: AudioSASec::Close 10-10 15:35:04.061 2159-2414/? D/AudioSAEffectSec: AudioSAEffectSec::~AudioSAEffectSec 10-10 15:35:04.061 2159-2414/? D/AudioSASec: AudioSASec::~AudioSASec() + 10-10 15:35:04.061 2159-2414/? D/AudioSASec: Samsung_SoundAlive_play_Factory::Destroy(mSoundAlive) 10-10 15:35:04.061 2159-2414/? D/AudioSASec: AudioSASec::~AudioSASec() - 10-10 15:35:04.061 2159-2414/? W/MySoundEffect: MySoundEffect_setEnabled() MySound is already disabled 10-10 15:35:04.061 2159-2414/? D/MySoundEffect: EffectRelease : All effects are no longer instantiated 10-10 15:35:04.061 2159-2414/? D/MySound: MySound::Close 10-10 15:35:04.061 2159-2414/? D/MySoundEffect: MySoundEffect::~MySoundEffect 10-10 15:35:04.066 2159-2414/? W/MySpaceEffect: MySpaceEffect_setEnabled() MySpace is already disabled 10-10 15:35:04.066 2159-2414/? D/MySpaceEffect: EffectRelease : All effects are no longer instantiated 10-10 15:35:04.066 2159-2414/? D/MySpace: MySpace::Close 10-10 15:35:04.066 2159-2414/? D/MySpaceEffect: MySpaceEffect::~MySpaceEffect 10-10 15:35:04.066 2159-2414/? I/AudioPolicyManager: stopOutput() output 2, stream 3, session 165 10-10 15:35:04.066 2159-2414/? I/AudioPolicyManager: changeRefCount() stream 3, count 0 10-10 15:35:04.066 2159-2414/? I/AudioPolicyManager: setOutputDevice() setting same device 0000 or null device for output 2 10-10 15:35:04.351 2665-2928/? E/NativeCrashListener: Exception dealing with report android.system.ErrnoException: read failed: EAGAIN (Try again) at libcore.io.Posix.readBytes(Native Method) at libcore.io.Posix.read(Posix.java:165) at libcore.io.BlockGuardOs.read(BlockGuardOs.java:230) at android.system.Os.read(Os.java:350) at com.android.server.am.NativeCrashListener.consumeNativeCrashData(NativeCrashListener.java:240) at com.android.server.am.NativeCrashListener.run(NativeCrashListener.java:138) 10-10 15:35:04.666 2665-2785/? D/CustomFrequencyManagerService: releaseDVFSLockLocked : Getting Lock type frm List : DVFS_MIN_LIMIT frequency : 1105000 uid : 1000 pid : 2665 tag : ACTIVITY_RESUME_BOOSTER@6 10-10 15:35:04.666 2665-2785/? D/ActivityManager: mDVFSHelper.release()

No audio when answer from background

Hey There

I am facing the weird issue , sometime audio is not coming during the video call I am using Agora RTC Engine

This is the code I am using

 rtcEngine = AgoraRtcEngineKit.sharedEngine(withAppId: KeyCenter.AppId, delegate: self)
        rtcEngine.setChannelProfile(.communication)
        rtcEngine.enableVideo()
        rtcEngine.enableAudio()
        
        rtcEngine.setDefaultAudioRouteToSpeakerphone(true)
        rtcEngine.setVideoSource(videoSource)
        
        let videoConfig:AgoraVideoEncoderConfiguration = .init(size:self.view.frame.size, frameRate: .fps15, bitrate: 600, orientationMode: .fixedPortrait)
        
        rtcEngine.setVideoEncoderConfiguration(videoConfig)
        
        
        
        let code = rtcEngine.joinChannel(byToken: nil, channelId: roomName, info: nil, uid: UInt(selfSession.userID)) {[weak self] (message, id, elapsed) in
            guard let `self` = self else {return }
            self.selfSession = ARDrawingSession(userID: Int64(id))
            self.selfSession.calls.appendNewCall(call: self.call)
            self.toggleARViewForScreenSharingType()
        }
        
        if code != 0 {
            DispatchQueue.main.async(execute: {
                self.showAlert(withMessage: "Join channel failed: \(code)")
            })
        }
        
        
        rtcEngine.setEnableSpeakerphone(true)

When issue occurs it continually occurs several times

This is the 5da57eef82a646bb00001f05 record ID from agora analysis console

Am I missing anything ?

Cannot find AR Kit or documentation

Is there a reference to the AR Kit that Agora.io claims to have implemented, namely "AR Filters and Stickers"? The description is as follows: Apply 600+ animated stickers, magic mirror and color filters. Take control of everything from UI to stream size and support third-party add-ons like filter, encryption, facial recognition, emojis, and more.

I have tried to find documentation on these AR Filters and Stickers; however, I haven't come across anything as yet. The closest I can find to this is a remote assistance AR app on Agora's Medium page.

Android - send custom video Buffer using Video Source

I am trying to send custom byte buffer using Custom Video Source.

I have tried following

agoraVideoSource.mConsumer.consumeByteBufferFrame(buffer, AgoraVideoFrame.BUFFER_TYPE_BUFFER,
                                           mSurfaceView.getWidth(), mSurfaceView.getHeight(), 0, mFrame.getTimestamp());

I am creating Bitmap from PixelCopy.

Please HELP !!

Here is the output.

Screen Shot 2019-04-17 at 1 07 17 PM

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.