devopvoid / webrtc-java

WebRTC for desktop platforms running Java
Apache License 2.0
248 stars 60 forks source link

Question: How to run the demo JAR on windows? #11

Closed chinhodado closed 1 year ago

chinhodado commented 3 years ago

I downloaded the webrtc-javafx-demo-0.2.0-windows-x86_64.jar file and tried to run it, but I got this error:

image

What am I missing?

devopvoid commented 3 years ago

Hi @chinhodado looks like you have an older version of Java installed.

What does java -version say?

Please make sure you have at least version 11 installed.

chinhodado commented 3 years ago

Sorry for slow reply. It was indeed a Java version problem. I downloaded Java 11 and the app started properly.

However I still couldn't get it to work properly. I went to https://appr.tc/ and created a room, then entered the number into the demo app. But all I could see in the demo app was a blank screen:

image

There were also some warnings in the console:

$ ./java.exe -jar "C:/Users/abc/Desktop/webrtc-javafx-demo-0.2.0-windows-x86_64.jar"
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/C:/Users/abc/Desktop/webrtc-javafx-demo-0.2.0-windows-x86_64.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

I am using AdoptOpenJDK 11 btw.

devopvoid commented 3 years ago

The warnings are nothing to worry about. I get them too.

Do you have a camera connected? Can you hear the transmitted audio? If you open a browser room only (via https://appr.tc/), works everything as expected?

chinhodado commented 3 years ago

Yes I have a camera and mic. If I open a room in a browser at https://appr.tc/, everything works there.

I also tried to open a room in the browser on my phone, just to rule out camera resource conflict, but still no luck.

This is what it looks like with the right panel expanded:

image

Also, not sure what the left most button with the monitor icon is for, but when I click on it, the app crashes with this exception:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setVideoFrameLabel(StatsSkin.java:87)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setRtpValues(StatsSkin.java:139)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.lambda$initLayout$0(StatsSkin.java:243)
        at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
        at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at dev.onvoid.webrtc.demo.javafx.control.Stats.setStatsReport(Stats.java:49)
        at dev.onvoid.webrtc.demo.javafx.view.FxCallView.lambda$setStatsReport$1(FxCallView.java:122)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setVideoFrameLabel(StatsSkin.java:87)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setRtpValues(StatsSkin.java:139)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.lambda$initLayout$0(StatsSkin.java:243)
        at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
        at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at dev.onvoid.webrtc.demo.javafx.control.Stats.setStatsReport(Stats.java:49)
        at dev.onvoid.webrtc.demo.javafx.view.FxCallView.lambda$setStatsReport$1(FxCallView.java:122)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setVideoFrameLabel(StatsSkin.java:87)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setRtpValues(StatsSkin.java:139)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.lambda$initLayout$0(StatsSkin.java:243)
        at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
        at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at dev.onvoid.webrtc.demo.javafx.control.Stats.setStatsReport(Stats.java:49)
        at dev.onvoid.webrtc.demo.javafx.view.FxCallView.lambda$setStatsReport$1(FxCallView.java:122)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setVideoFrameLabel(StatsSkin.java:87)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setRtpValues(StatsSkin.java:139)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.lambda$initLayout$0(StatsSkin.java:243)
        at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
        at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at dev.onvoid.webrtc.demo.javafx.control.Stats.setStatsReport(Stats.java:49)
        at dev.onvoid.webrtc.demo.javafx.view.FxCallView.lambda$setStatsReport$1(FxCallView.java:122)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setVideoFrameLabel(StatsSkin.java:87)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setRtpValues(StatsSkin.java:139)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.lambda$initLayout$0(StatsSkin.java:243)
        at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
        at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at dev.onvoid.webrtc.demo.javafx.control.Stats.setStatsReport(Stats.java:49)
        at dev.onvoid.webrtc.demo.javafx.view.FxCallView.lambda$setStatsReport$1(FxCallView.java:122)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setVideoFrameLabel(StatsSkin.java:87)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.setRtpValues(StatsSkin.java:139)
        at dev.onvoid.webrtc.demo.javafx.control.skin.StatsSkin.lambda$initLayout$0(StatsSkin.java:243)
        at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
        at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at dev.onvoid.webrtc.demo.javafx.control.Stats.setStatsReport(Stats.java:49)
        at dev.onvoid.webrtc.demo.javafx.view.FxCallView.lambda$setStatsReport$1(FxCallView.java:122)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Unknown Source)
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_UNCAUGHT_CXX_EXCEPTION (0xe06d7363) at pc=0x00007ffadae53b29, pid=93664, tid=31772
#
# JRE version: OpenJDK Runtime Environment AdoptOpenJDK (11.0.9.1+1) (build 11.0.9.1+1)
# Java VM: OpenJDK 64-Bit Server VM AdoptOpenJDK (11.0.9.1+1, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [KERNELBASE.dll+0x43b29]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\abc\Downloads\OpenJDK11U-jre_x64_windows_hotspot_11.0.9.1_1\jdk-11.0.9.1+1-jre\bin\hs_err_pid93664.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/AdoptOpenJDK/openjdk-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
devopvoid commented 3 years ago

Thanks! Something is clearly wrong. I'll have a look into it. Currently working on the desktop capture support.

devopvoid commented 1 year ago

Closed, since the demos have been removed due to the nonexistent remote service on which the demo was build.