android 播放web的屏幕共享

您好,现在android 播放屏幕共享的视频流一直有问题,可以播放成功,但是极其不稳定,大约只能播放一分多钟,然后android的画面就定格不动了,有时候过了很久,才会刷新为web的新的屏幕共享的界面;
android 代码如下:
getRtcManager().rtcEngine().enableWebSdkInteroperability(true);
SurfaceView surfaceView = RtcEngine.CreateRendererView(host);
surfaceView.setZOrderOnTop(true);
surfaceView.setZOrderMediaOverlay(true);
surfaceView.setTag(uid);
getRtcManager().rtcEngine().setupRemoteVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, uid));
EventShareScreen shareScreen = new EventShareScreen();
shareScreen.setUid(uid);
shareScreen.setShareView(surfaceView);
EventBus.getDefault().post(shareScreen);

我这边配置的问题,代码的问题,还是说需要刷新,我写了测试,重写执行上面的代码,也是一样

顺便补充一下,IOS端没有这个问题,还是觉得是自己代码的问题,或者是对android支持的不够友好

这一部分代码,是分别设置远端摄像头视频流视窗和远端屏幕共享流视窗吗?
还是设置远端屏幕共享流视窗和设置安卓端本地屏幕共享视窗?

“iOS 端没有这个问题”,这个是怎么判断的?Android 端和 iOS 端同时观看 Web 端的屏幕共享,1min 后 Android 端出现视频不稳定的问题,iOS 端却没有出现吗?

建议可以用安卓端 Demo 来和 Web 端通话,看下观看 Web 端屏幕流的效果如何,从而排除集成问题:
https://download.agora.io/sdk/release/Agora_Native_SDK_for_Android_v2_9_2_FULL.zip?_ga=2.26508670.2117450149.1577671902-1276532045.1570589025

不好意思,昨天请假了,不在公司,没有看消息,是的。这段代码是设置web的共享屏幕的视频流。设置远端的摄像头的视频流也是一样的代码。我是同时用IOS和android的设备,加入同一个channel,然后web共享,发现IOS比android稳定很多,android经常画面定格不动

这个代码的含义是啥?没看明白…设置 web 的屏幕共享视窗这样调用就行了啊:

private void setupRemoteView(int uid) {
        SurfaceView surfaceV = RtcEngine.CreateRendererView(getApplicationContext());
        surfaceV.setZOrderOnTop(true);
        surfaceV.setZOrderMediaOverlay(true);

        if (uid == Constant.CAMERA_UID) {
            mFlCam.addView(surfaceV, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        } else if (uid == Constant.SCREEN_SHARE_UID){
            mFlSS.addView(surfaceV, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        } else {
            Log.e(TAG, "unknown uid");
        }

        mRtcEngine.setupRemoteVideo(new VideoCanvas(surfaceV, VideoCanvas.RENDER_MODE_FIT, uid));
    }

用 Demo 来看 Web 端有没有问题?

setupRemoteVideo 方法需要在主线程调用的,我还是没懂为啥要 “把这个SurfacView包装了一下,通过EventBus发出去了,在主线程去显示” 这么操作:joy: 要不你先试试看 Demo,如果也有问题,就拿 sdk log 过来吧,我们来看看。

@Override
public void onUserJoined(final int uid, int elapsed) {
Log.e(“MeetingKit”, “onUserJoined,uid:” + uid);
if (meetingConfig != null) {
if (!meetingConfig.isInRealMeeting()) {
return;
}

        Observable.just(meetingConfig).observeOn(AndroidSchedulers.mainThread()).doOnNext(new Consumer<MeetingConfig>() {
            @Override
            public void accept(MeetingConfig meetingConfig) throws Exception {
                // 屏幕共享
                if (uid > 1000000000 && uid < 1500000000) {
                    getRtcManager().rtcEngine().enableWebSdkInteroperability(true);
                    SurfaceView surfaceView = RtcEngine.CreateRendererView(host.getBaseContext());
                    surfaceView.setZOrderOnTop(true);
                    surfaceView.setZOrderMediaOverlay(true);
                    surfaceView.setTag(uid);
                    getRtcManager().rtcEngine().setupRemoteVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, uid));
                    EventShareScreen shareScreen = new EventShareScreen();
                    shareScreen.setUid(uid);
                    shareScreen.setShareView(surfaceView);
                    EventBus.getDefault().post(shareScreen);
                }else {
                 //  成员的camera                   
                    refreshMembersAndPost(meetingConfig,uid,false);
                }
            }
        }).subscribe();


    }
}

我们的代码都是分模块的,声网的部分都是在一个类里面独立处理的,我看了一下,确实在主线程里面调用的

提供一下问题(画面卡住)发生的时间点 和 安卓端的 SDK log,以及录屏文件也给一下。

01-06 09:43:15.863 15224-15432/com.kloudsync.techexcel W/Adreno-GSL: <sharedmem_gpuobj_alloc:2668>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
01-06 09:43:15.881 15224-15432/com.kloudsync.techexcel E/Adreno-GSL: <gsl_memory_alloc_pure:2270>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
01-06 09:43:15.882 15224-15432/com.kloudsync.techexcel W/Adreno-GSL: <sharedmem_gpuobj_alloc:2668>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
01-06 09:43:15.897 812-1753/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:43:15.897 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:43:15.899 15224-15432/com.kloudsync.techexcel E/Adreno-GSL: <gsl_memory_alloc_pure:2270>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
01-06 09:43:15.900 15224-15432/com.kloudsync.techexcel W/Adreno-GSL: <sharedmem_gpuobj_alloc:2668>: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory
01-06 09:43:15.906 1563-1593/? D/DEBUG_VISIBILITY: mOccluded:false lastOccluded:false
01-06 09:43:15.913 808-17409/? D/audio_hw_primary: disable_audio_route: reset and update mixer path: deep-buffer-playback speaker
01-06 09:43:15.913 15224-15432/com.kloudsync.techexcel E/Adreno-GSL: <gsl_memory_alloc_pure:2270>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
01-06 09:43:15.914 808-17409/? D/soundtrigger: audio_extn_sound_trigger_update_stream_status: uc_info->id 0 of type 0 for Event 2, with Raise=1
01-06 09:43:15.914 808-17409/? I/sound_trigger_platform: platform_stdev_check_and_update_concurrency: Received STREAM event, event type 2, usecase type 0
01-06 09:43:15.914 808-17409/? D/sound_trigger_platform: platform_stdev_check_and_update_concurrency: dedicated path 1, reset backend 1, tx 1, rx 0,concurrency session allowed
01-06 09:43:15.914 808

你说的录频文件指的是什么,我看这边好像是内存的原因,我的手机是oppor的,配置挺高的

刚才的log是屏幕黑屏

=================
下面的log是不跟随,android画面定格的log

01-06 09:49:27.073 812-1813/? D/OP_META: [DEBUG ] OPMetaManager.cpp:267 readOPMeta() [OP_EXT] OP_CAMERA FRAME FPS 30.0, frame count 3180, time 106.0
01-06 09:49:27.105 812-1751/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.106 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.143 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.143 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.176 2310-2612/com.kloudsync.techexcel I/MediaCodec: mInputBufCnt = 6 fps, mOutputBufCnt = 6 fps, mRenderFrameCnt = 0 fps
01-06 09:49:27.178 812-1753/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.178 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.213 812-1748/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.213 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.238 812-1748/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.242 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.274 812-1751/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.275 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.306 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.307 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.342 812-1752/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.345 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.372 812-1748/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.373 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.420 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.420 812-1751/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.443 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.443 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.480 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.480 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.510 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.511 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.540 812-1748/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.541 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.572 812-1751/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.574 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.607 812-1753/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.608 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.642 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.644 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.673 812-1748/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.674 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.708 812-1753/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.709 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.742 812-1748/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.743 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.777 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.779 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.807 812-1752/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.807 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.845 812-1752/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.846 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.875 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.875 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.905 812-1752/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.906 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.945 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:27.945 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.975 812-1751/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:27.977 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.005 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.006 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.041 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.041 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.079 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.079 812-1814/? D/OP_META: [DEBUG ] OPMetaManager.cpp:267 readOPMeta() [OP_EXT] OP_CAMERA FRAME FPS 30.0, frame count 3210, time 107.0
01-06 09:49:28.079 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.110 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.111 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.143 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.144 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.144 24772-24914/? I/SceneService.NearbyPoiSceneService: updateDataJob begin, dataSource = 0; synthesis = 0; mScreenOn = true
01-06 09:49:28.144 24772-24914/? I/SceneService.PoiSceneHelper: checkResidentShop end, result = false; step - stepThree = 0 ## stepSecond = 9 & stepThree = 9& stepCur = 9
01-06 09:49:28.179 812-1754/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.181 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.186 2310-2612/com.kloudsync.techexcel I/MediaCodec: mInputBufCnt = 5 fps, mOutputBufCnt = 5 fps, mRenderFrameCnt = 0 fps
01-06 09:49:28.194 1145-2695/? I/OMX-VENC: venc_dev: stats: avg. fps 4.99, bitrate 204051
01-06 09:49:28.204 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.205 812-1813/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.240 812-1753/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.242 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.278 812-1814/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.278 812-1750/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.306 812-1751/? E/libc: Access denied finding property “persist.camera.assert.panic”
01-06 09:49:28.307 812-812/? E/libc: Access denied finding property “persist.camera.setfrontcaptype”
01-06 09:49:28.308 1143-1342/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0

我刚替换了你发给我的链接里面的.so 和 agora-rtc-sdk.jar,发现build不成功

Error:Internal error:

org.gradle.tooling.BuildException: Could not execute build using Gradle distribution ‘https://services.gradle.org/distributions/gradle-4.10.1-all.zip’.

at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:51)

at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)

at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)

at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)

at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)

at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)

at org.gradle.tooling.internal.consumer.DefaultBuildLauncher.run(DefaultBuildLauncher.java:77)

at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.lambda$invokeGradleTasks$2(GradleTasksExecutor.java:453)

at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:219)

at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.invokeGradleTasks(GradleTasksExecutor.java:506)

at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.run(GradleTasksExecutor.java:291)

at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:726)

at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176)

at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556)

at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)

at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)

at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163)

at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:137)

at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: org.gradle.internal.exceptions.LocationAwareException: Could not resolve all files for configuration ‘:app:debugCompileClasspath’.

at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74)

at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:49)

at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)

at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)

at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:152)

at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)

at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)

at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)

at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)

at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)

at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)

at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)

at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:55)

at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)

at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)

at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)

at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)

at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)

at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)

at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)

at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)

at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)

at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)

at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)

at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)

at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)

at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)

at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)

at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)

at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)

at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)

at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)

at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)

at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)

at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)

at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)

at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)

at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)

at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)

at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)

at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)

at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)

at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)

at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)

at org.gradle.util.Swapper.swap(Swapper.java:38)

at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)

at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)

at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)

at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)

at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)

at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)

at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)

at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ‘:app:debugCompileClasspath’.

at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1054)

at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1700(DefaultConfiguration.java:123)

at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1028)

at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:76)

at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter$FileCollectionVisitorImpl.visitCollection(DefaultFileSystemSnapshotter.java:257)

at org.gradle.api.internal.file.AbstractFileCollection.visitRootElements(AbstractFileCollection.java:282)

at org.gradle.api.internal.file.CompositeFileCollection.visitRootElements(CompositeFileCollection.java:206)

at org.gradle.api.internal.changedetection.state.DefaultFileSystemSnapshotter.snapshot(DefaultFileSystemSnapshotter.java:142)

at org.gradle.internal.fingerprint.impl.AbstractFileCollectionFingerprinter.fingerprint(AbstractFileCollectionFingerprinter.java:54)

at org.gradle.internal.fingerprint.impl.DefaultCompileClasspathFingerprinter.fingerprint(DefaultCompileClasspathFingerprinter.java:46)

at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.fingerprintTaskFiles(CacheBackedTaskHistoryRepository.java:358)

at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.createExecution(CacheBackedTaskHistoryRepository.java:163)

at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.access$100(CacheBackedTaskHistoryRepository.java:76)

at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository$1.getCurrentExecution(CacheBackedTaskHistoryRepository.java:123)

at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.getStates(DefaultTaskArtifactStateRepository.java:200)

at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.isUpToDate(DefaultTaskArtifactStateRepository.java:94)

at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:50)

at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)

at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)

at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)

at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)

at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)

at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)

at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)

at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)

at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)

at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)

at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)

at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)

at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)

at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)

at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)

at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)

… 3 more

Caused by: org.gradle.api.artifacts.transform.ArtifactTransformException: Failed to transform file ‘agora-rtc-sdk.jar’ to match attributes {artifactType=processed-jar} using transform IdentityTransform

at org.gradle.api.internal.artifacts.transform.UserCodeBackedTransformer.transform(UserCodeBackedTransformer.java:90)

at org.gradle.api.internal.artifacts.transform.ChainedTransformer.transform(ChainedTransformer.java:38)

at org.gradle.api.internal.artifacts.transform.TransformFileOperation.run(TransformFileOperation.java:48)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)

at org.gradle.internal.operations.DefaultBuildOperationExecutor.access$900(DefaultBuildOperationExecutor.java:48)

at org.gradle.internal.operations.DefaultBuildOperationExecutor$ParentPreservingQueueWorker.execute(DefaultBuildOperationExecutor.java:342)

at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.runOperation(DefaultBuildOperationQueue.java:230)

at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.access$600(DefaultBuildOperationQueue.java:172)

at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable$1.call(DefaultBuildOperationQueue.java:209)

at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable$1.call(DefaultBuildOperationQueue.java:203)

at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)

at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.runBatch(DefaultBuildOperationQueue.java:203)

at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.run(DefaultBuildOperationQueue.java:177)

… 3 more

Caused by: org.gradle.api.InvalidUserDataException: Transform output file /Users/tonyan/work/Kloudsync/CallLib/libs/agora-rtc-sdk.jar does not exist.

at org.gradle.api.internal.artifacts.transform.TransformArtifactsAction.apply(TransformArtifactsAction.java:52)

at org.gradle.api.internal.artifacts.transform.TransformArtifactsAction.apply(TransformArtifactsAction.java:29)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache$TransformAction.execute(DefaultTransformedFileCache.java:251)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache$TransformAction.execute(DefaultTransformedFileCache.java:238)

at org.gradle.internal.resource.local.DefaultPathKeyFileStore$1.execute(DefaultPathKeyFileStore.java:91)

at org.gradle.internal.resource.local.DefaultPathKeyFileStore$1.execute(DefaultPathKeyFileStore.java:87)

at org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd(DefaultPathKeyFileStore.java:137)

at org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd(DefaultPathKeyFileStore.java:127)

at org.gradle.internal.resource.local.DefaultPathKeyFileStore.add(DefaultPathKeyFileStore.java:87)

at org.gradle.internal.resource.local.DefaultPathKeyFileStore.add(DefaultPathKeyFileStore.java:50)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache$1$1.create(DefaultTransformedFileCache.java:163)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache$1$1.create(DefaultTransformedFileCache.java:142)

at org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess.withFileLock(LockOnDemandCrossProcessCacheAccess.java:90)

at org.gradle.cache.internal.DefaultCacheAccess.withFileLock(DefaultCacheAccess.java:193)

at org.gradle.cache.internal.DefaultPersistentDirectoryStore.withFileLock(DefaultPersistentDirectoryStore.java:170)

at org.gradle.cache.internal.DefaultCacheFactory$ReferenceTrackingCache.withFileLock(DefaultCacheFactory.java:195)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache$1.create(DefaultTransformedFileCache.java:142)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache$1.create(DefaultTransformedFileCache.java:135)

at org.gradle.cache.internal.ProducerGuard$AdaptiveProducerGuard.guardByKey(ProducerGuard.java:97)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache.loadIntoCache(DefaultTransformedFileCache.java:135)

at org.gradle.api.internal.artifacts.transform.DefaultTransformedFileCache.getResult(DefaultTransformedFileCache.java:127)

at org.gradle.api.internal.artifacts.transform.UserCodeBackedTransformer.transform(UserCodeBackedTransformer.java:88)

… 17 more

1、录屏文件,你可以理解为就是拍一个出问题的视频发过来看看。
2、你发过来的是 app log,android sdk log 默认路径为: /sdcard/{App 的包名}/agorasdk.log。论坛可以直接上传文件。
3、你大概理解错了我的意思,不是让你替换库文件,是直接跑一下链接里的 samples 文件夹里的示例程序,可以按照文件夹里的 readme 文档运行,然后进频道观看 web 端直播看下有没有问题,这是最好的验证是否是代码集成问题的方案。

我在sdcard里面没有发现这个文件,您可以用下我们的产品么,web,https://kloudsync.peertime.cn/kloud/meeting,下载一个我们的android 的 app 下载地址 https://www.pgyer.com/Dck1 密码 :123456,我提供俩个账号给您,在web上面开启一个会议,app,加入这个会议,然后web开启屏幕分享,一会就会有问题了

15000712803 1234567
18018000002 123456

好的,我下午测一下。

多谢您了

您好,有没有帮我测试看看呢

刚才用 mate10 测了两次,每次都测了 5 分钟左右,完全没有问题啊:joy: 一直都很流畅,在屏幕上播放视频,安卓端观看也一直很流畅。

是不是你设备的问题啊?换个设备测试看看,测试时把后台其它应用关掉,用网速快一些的网络来测?

额,我用的是oppo,我也有一款华为也有这个问题,小米也有问题

给一下你测试的 channelName,我查下后台数据。