jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
23k stars 6.69k forks source link

The Problem of Jitsi Meet app in Google Play #2658

Closed TangXT closed 6 years ago

TangXT commented 6 years ago

Could you tell me which version of source code do you use for compilation of the Jitsi Meet app in Google Play? Thanks!

saghul commented 6 years ago

Unfortunately that's a bit hard to tell. Due to limitations on access to signing keys we build the apps on a secure Atlassian machine, which uses a clone of this project with added signing keys and the Crashlitics framework.

That said, building the current master should always work, if it doesn't that's a bug which we should address. Are you encountering any problems?

TangXT commented 6 years ago

@saghul My most building could not open camera for some single camera Android TV Box,while the app from google play can. This is my debug logs with Android 6.0.1 D/AudioMode: Update audio route for mode: 0 D/AudioManager: setMode: mode = 0 D/AudioManager: setSpeakerphoneOn(false) D/AudioManager: setBluetoothScoOn: on = false D/AudioManager: stopBluetoothSco I/ReactNativeJS: '[modules/RTC/ScreenObtainer.js]', ': ', 'Screen sharing not supported by the current browser: ', 'rtc_browser.react-native', 'react-native' I/ReactNativeJS: '[modules/RTC/ScreenObtainer.js]', ': ', 'Desktop sharing disabled' I/ReactNativeJS: '[filename]', ': ', 'Start muted: ' I/ReactNativeJS: '[modules/RTC/RTCUtils.js]', ': ', 'Get media constraints', { audio: false, video: { mandatory: { minWidth: 1280, minHeight: 720, maxWidth: 1280, maxHeight: 720 }, optional: [ { facingMode: 'user' } ], facingMode: 'user', width: { ideal: 1280 }, height: { ideal: 720 } } } I/com.oney.WebRTCModule.WebRTCModule: getUserMedia(video): { NativeMap: {"height":{"ideal":720},"width":{"ideal":1280},"facingMode":"user","optional":[{"facingMode":"user"}],"mandatory":{"maxHeight":720,"maxWidth":1280,"minHeight":720,"minWidth":1280}} } I/CameraManagerGlobal: Connecting to camera service D/com.oney.WebRTCModule.WebRTCModule: Creating video capturer using Camera1 API. I/org.webrtc.Logging: Camera1Enumerator: Index: 0. Camera 0, Facing back, Orientation 0 I/org.webrtc.Logging: Camera1Enumerator: getCameraIndex: Camera 0, Facing back, Orientation 0 I/ReactNativeJS: '[modules/RTC/RTCUtils.js]', ': ', 'Available devices: ', [ { facing: 'back', label: 'Camera 0, Facing back, Orientation 0', kind: 'videoinput', deviceId: '0', groupId: null }, { facing: null, label: 'Audio', kind: 'audioinput', deviceId: 'audio-1', groupId: null } ] W/ReactNativeJS: '[modules/RTC/RTCUtils.js]', ': ', 'Failed to get access to local media. Error ', { name: null, message: 'Failed to create new track', constraintName: undefined }, { audio: false, video: { mandatory: { minWidth: 1280, minHeight: 720, maxWidth: 1280, maxHeight: 720 }, optional: [ { facingMode: 'user' } ], facingMode: 'user', width: { ideal: 1280 }, height: { ideal: 720 } } } E/ReactNativeJS: '[modules/RTC/RTCUtils.js]', ': ', 'failed to obtain video stream - stop', [gum.general: Failed to create new track] E/unknown:ReactNative: console.error: "[modules/RTC/RTCUtils.js]", ": ", "failed to obtain video stream - stop", {"gum":{"error":{"name":null,"message":"Failed to create new track"},"constraints":{"audio":false,"video":{"mandatory":{"minWidth":1280,"minHeight":720,"maxWidth":1280,"maxHeight":720},"optional":[{"facingMode":"user"}],"facingMode":"user","width":{"ideal":1280},"height":{"ideal":720}}},"devices":["video"]},"name":"gum.general","message":"Failed to create new track","stack":"r@index.android.bundle:406:88431\nindex.android.bundle:406:216566\nc@index.android.bundle:406:201935\nindex.android.bundle:406:202303\nindex.android.bundle:399:1156\nvalue@index.android.bundle:35:3467\nindex.android.bundle:35:1240\nvalue@index.android.bundle:35:2606\nvalue@index.android.bundle:35:1210\n[native code]"}, stack: @333:2270 n@406:303122 @406:203056 @406:216558 c@406:201935 @406:202303 @399:1156 value@35:3467 @35:1240 value@35:2606 value@35:1210 E/ReactNativeJS: '[filename]', ': ', 'Failed to create local tracks', [ 'video' ], [gum.general: Failed to create new track] E/unknown:ReactNative: console.error: "[__filename]", ": ", "Failed to create local tracks", ["video"], {"gum":{"error":{"name":null,"message":"Failed to create new track"},"constraints":{"audio":false,"video":{"mandatory":{"minWidth":1280,"minHeight":720,"maxWidth":1280,"maxHeight":720},"optional":[{"facingMode":"user"}],"facingMode":"user","width":{"ideal":1280},"height":{"ideal":720}}},"devices":["video"]},"name":"gum.general","message":"Failed to create new track","stack":"r@index.android.bundle:406:88431\nindex.android.bundle:406:216566\nc@index.android.bundle:406:201935\nindex.android.bundle:406:202303\nindex.android.bundle:399:1156\nvalue@index.android.bundle:35:3467\nindex.android.bundle:35:1240\nvalue@index.android.bundle:35:2606\nvalue@index.android.bundle:35:1210\n[native code]"}, stack: @333:2270 r@380:727 @546:1124 @68:613 @68:641 @40:1785 a@40:527 o@40:891 callImmediates@40:3186 value@35:2778 @35:1360 value@35:2606 value@35:1330 value@35:1265 I/[MALI][Gralloc]: [+]r_hnd(0xe83e65a0), client(51), share_fd(75) D/GraphicBuffer: register, handle(0xe83e65a0) (w:1920 h:1080 s:1920 f:0x1 u:0x000b00) D/OpenGLRenderer: CacheTexture 1 upload: x, y, width height = 0, 0, 174, 170 I/[MALI][Gralloc]: [+]r_hnd(0xe83e7ae0), client(51), share_fd(77) D/GraphicBuffer: register, handle(0xe83e7ae0) (w:1920 h:1080 s:1920 f:0x1 u:0x000b00) I/org.webrtc.Logging: WebRtcAudioManager: VOICE_CALL stream volume: 7 (max=7) I/org.webrtc.Logging: WebRtcAudioManager: VOICE_CALL stream volume: 7 (max=7) I/org.webrtc.Logging: WebRtcAudioManager: VOICE_CALL stream volume: 7 (max=7) I/org.webrtc.Logging: WebRtcAudioManager: VOICE_CALL stream volume: 7 (max=7) I/org.webrtc.Logging: WebRtcAudioManager: VOICE_CALL stream volume: 7 (max=7)

TangXT commented 6 years ago

@saghul This is my debug logs with Android 6.0.1, While I set facingMode: 'environment' the app crashed with the logs below: I/ReactNativeJS: '[modules/RTC/ScreenObtainer.js]', ': ', 'Screen sharing not supported by the current browser: ', 'rtc_browser.react-native', 'react-native' I/ReactNativeJS: '[modules/RTC/ScreenObtainer.js]', ': ', 'Desktop sharing disabled' I/ReactNativeJS: '[__filename]', ': ', 'Start muted: ' I/ReactNativeJS: '[modules/RTC/RTCUtils.js]', ': ', 'Get media constraints', { audio: false, video: { mandatory: { minFrameRate: '5', maxFrameRate: '10', minWidth: 1280, minHeight: 720, maxWidth: 1280, maxHeight: 720 }, optional: [ { facingMode: 'environment' } ], facingMode: 'environment', width: { ideal: 1280 }, height: { ideal: 720 } } } I/com.oney.WebRTCModule.WebRTCModule: getUserMedia(video): { NativeMap: {"height":{"ideal":720},"width":{"ideal":1280},"facingMode":"environment","optional":[{"facingMode":"environment"}],"mandatory":{"maxHeight":720,"maxWidth":1280,"minHeight":720,"minWidth":1280,"maxFrameRate":"10","minFrameRate":"5"}} } I/CameraManagerGlobal: Connecting to camera service D/com.oney.WebRTCModule.WebRTCModule: Creating video capturer using Camera1 API. I/org.webrtc.Logging: Camera1Enumerator: Index: 0. Camera 0, Facing back, Orientation 0 I/org.webrtc.Logging: Camera1Enumerator: getCameraIndex: Camera 0, Facing back, Orientation 0 I/org.webrtc.Logging: Camera1Enumerator: Index: 0. Camera 0, Facing back, Orientation 0 D/com.oney.WebRTCModule.WebRTCModule: Create environment-facing camera Camera 0, Facing back, Orientation 0 succeeded I/org.webrtc.Logging: EglBase14: SDK version: 23. isEGL14Supported: true I/BufferQueue: unnamed-9361-0 BufferQueue core=(9361:com.xxxx.demo) I/BufferQueueConsumer: unnamed-9361-0 connect(C): consumer=(9361:com.xxxx.demo) controlledByApp=true I/BufferQueueConsumer: unnamed-9361-0 setConsumerName: unnamed-9361-0 I/BufferQueueConsumer: SurfaceTexture-1-9361-0 setConsumerName: SurfaceTexture-1-9361-0 D/AndroidRuntime: Shutting down VM

          --------- beginning of crash

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.xxxx.demo, PID: 9361 com.facebook.react.bridge.UnexpectedNativeTypeException: TypeError: expected dynamic type double', but had typestring' at com.facebook.react.bridge.ReadableNativeMap.getInt(Native Method) at com.oney.WebRTCModule.GetUserMediaImpl.getUserVideo(GetUserMediaImpl.java:445) at com.oney.WebRTCModule.GetUserMediaImpl.getUserMedia(GetUserMediaImpl.java:339) at com.oney.WebRTCModule.GetUserMediaImpl.access$000(GetUserMediaImpl.java:28) at com.oney.WebRTCModule.GetUserMediaImpl$1.invoke(GetUserMediaImpl.java:302) at com.oney.WebRTCModule.GetUserMediaImpl$3.invoke(GetUserMediaImpl.java:560) at com.oney.WebRTCModule.PermissionUtils$2.onReceiveResult(PermissionUtils.java:216) at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5692) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) I/ReactNativeJS: '[modules/RTC/RTCUtils.js]', ': ', 'Available devices: ', [ { facing: 'back', label: 'Camera 0, Facing back, Orientation 0', kind: 'videoinput', deviceId: '0', groupId: null }, { facing: null, label: 'Audio', kind: 'audioinput', deviceId: 'audio-1', groupId: null } ] I/Process: Sending signal. PID: 9361 SIG: 9 Disconnected from the target VM, address: 'localhost:8634', transport: 'socket'

saghul commented 6 years ago

Hum, are you just building our app or using the SDK? Are you using meet.jit.si or your own deployment?

TangXT commented 6 years ago

I try both building jitsi-meet app and my app using SDK @saghul And I find https://github.com/jitsi/jitsi-meet/issues/2209 the same with my problem

saghul commented 6 years ago

The app from the store and this repo are in essence the same, so I'm a bit puzzled as to what's going on here :-(

TangXT commented 6 years ago

@saghul I find the app from the store is different with this repo, The app from the store can't setting display name and server url...

saghul commented 6 years ago

Ah, that'd the old version then (I thought we had pushed the new one, I've been away for 6 weeks, sorry). Then this is a regression from the WebRTC M58 to M63 upgrade.

TangXT commented 6 years ago

@saghul I need to change back to M58? How to do? I find about WebRTC in package.json is "react-native-webrtc": "github:jitsi/react-native-webrtc#626818af40384356617f70366133317b6a475171", How to change to the old one M58?

TangXT commented 6 years ago

Here is a discussion about ‘ rotation’ https://github.com/facebook/react-native/issues/3216 @saghul

saghul commented 6 years ago

Here is a discussion about ‘ rotation’ facebook/react-native#3216

I don't think that's the bug here, since we don't use that, AFAIK.

I need to change back to M58? How to do? I find about WebRTC in package.json is "react-native-webrtc": "github:jitsi/react-native-webrtc#626818af40384356617f70366133317b6a475171", How to change to the old one M58?

You need to "go back in time". That is, reset your clone to a commit which didn't have M63 as a dependency. This should do:

git reset --hard 41aa704e1f71ee9a52119928f451ab6659de8617

And then npm install as usual. That will reset the repo to right before we added M63 support.

Note that this is not future-proof, you should try to fix the bug itself. Unfortunately I have no device where I can reproduce this, but I'll happily review a PR.

TangXT commented 6 years ago

git reset --hard 41aa704e1f71ee9a52119928f451ab6659de8617 Thanks! @saghul Do you mean change package.json to "react-native-webrtc": "github:jitsi/react-native-webrtc#41aa704e1f71ee9a52119928f451ab6659de8617"?? or rest jitsi-meet to version 41aa704e1f71ee9a52119928f451ab6659de8617

TangXT commented 6 years ago

@saghul Ah! I see, you mean https://github.com/jitsi/jitsi-meet/blob/41aa704e1f71ee9a52119928f451ab6659de8617

saghul commented 6 years ago

Yep, I mean to reset your clone of jitsi-meet itself.

TangXT commented 6 years ago

@saghul I do as you said using https://github.com/jitsi/jitsi-meet/commit/41aa704e1f71ee9a52119928f451ab6659de8617 But the problem still exists.That's why? P.S:The UI of 41aa704e1f71ee9a52119928f451ab6659de8617 is diffenent from app from the store The UI of [app from the store ] as below: 66c14a5abd8cc54b97c03a2f84dbbf5f

saghul commented 6 years ago

I really don't know :-( All I can suggest is "going back in time" until you find a revision that works and trying to find the culprit.

It might have been an update to react-native-webrtc, not related to the M63 upgrade, but it's hard to tell.

TangXT commented 6 years ago

@saghul I find the version of react-native update from 0.50.4 to 0.51.0,Maybe react-native-webrtc upgrade Maybe try different version of react-native(0.50.4, 0.51.0) and react-native-webrtc could find a revision that works

saghul commented 6 years ago

I doubt this is related to the react-native version but feel free to try!

TangXT commented 6 years ago

@saghul I want to try react-native version 0.50.4 and 0.51.0 with the master version of jitsi-meet by change the package.json and package-lock.json. Could you tell am I right only change package.json and package-lock.json, and do: rm -rf node_modules rm -fr $TMPDIR/react-* npm install

saghul commented 6 years ago

Ok, now that we narrowed it down, the problem seems to be the fact that there is only a single camera. Closing this in favor of #2209 .