webrtc-java
webrtc-java copied to clipboard
Question: How to run the demo JAR on windows?
I downloaded the webrtc-javafx-demo-0.2.0-windows-x86_64.jar
file and tried to run it, but I got this error:
What am I missing?
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.
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:
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.
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?
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:
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.
#
Thanks! Something is clearly wrong. I'll have a look into it. Currently working on the desktop capture support.
Closed, since the demos have been removed due to the nonexistent remote service on which the demo was build.