Giter VIP home page Giter VIP logo

goxr3plus / xr3player Goto Github PK

View Code? Open in Web Editor NEW
700.0 35.0 169.0 168.9 MB

🎧 🎼 The MOST ADVANCED JavaFX Media Player

Home Page: https://xr3player.netlify.com/

License: GNU Lesser General Public License v3.0

CSS 3.39% Java 93.92% HTML 2.69%
web-browser audio-visualizer audio-player dropbox-client audio-formats audio-recorder audio-processing javafx java-speech stream-player

xr3player's Introduction

ko-fi

XR3Player is running with Java 21 as minimum JDK

I am busy making mobile apps this period so i am maintining only for now


XR3Player ( Download )

The most advanced Java Media Player/Organizer you will ever find out there


Latest Version Join the chat at https://gitter.im/XR3Player/Lobby Download XR3Player Total Downloads License: LGPL v3 GitHub issues Patreon donate button PayPal donate button

Video
First

Attention for future contributors

Check the section HOW TO RUN PROJECT because it needs just 20 seconds of adding some extra VM parameters .

Platform Support ( 64 bit )

Installer Windows x64 MacOS x64 Linux x64 Android IOS
Download link X (help wanted) X (help wanted) X (planning) X (planning)
DJ UI Chromium Web Browser
First web_browser
Multiple Users Advanced UI
login_mode main_mode

HOW TO RUN PROJECT

To build XR3Player, you will need:

  • [JDK 21]
  • Maven - Version 3.8.1++

Open IntelliJ and fork the project (https://github.com/goxr3plus/XR3Player).

2019-08-01_18-04-22

In order to run the project you should add the following VM Options ( easy using IntelliJ , Eclipse or Netbeans ) :

--add-exports javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix
--add-exports javafx.controls/com.sun.javafx.scene.control=com.jfoenix
--add-exports javafx.base/com.sun.javafx.binding=com.jfoenix
--add-exports javafx.graphics/com.sun.javafx.stage=com.jfoenix
--add-exports javafx.base/com.sun.javafx.event=com.jfoenix
--add-exports javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls,
--add-exports javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls

Ready to go :)

This is only for me when i build the new installers ( i wrote this to not forget in future )

How i package for the installer : Maven clean and then Maven package from the lifecycles .

It prepares a XR3Player_lib and a XR3Player.jar and it copies then using the assemply into a zip called XR3Player Update xxx . zip

image

image

Modular

  • As XR3Player codebase keeps growing i decided to make it modular so it's main components are the below :
    • XR3Player Core ( The main code of XR3Player )
    • XR3Capture ( For capturing the computer screen )
    • Stream Player ( Audio Library 100% Java )
    • //TODO JVisualizations ( Advanced Java Audio Visualizations Library )
    • //TODO JAmplitudeVisuals ( Advanced Java Library for representing Audio Amplitude Visualizations )

Features

  • Done βœ”οΈ
    • Support almost all audio formats through smart converting to .mp3
    • Amazing Audio Spectrum Visualizers
    • Audio Amplitudes Waveform
    • Chromium Web Browser
    • Full Dropbox access
    • Multiple User Accounts
    • Configurable via multiple settings
    • Advanced Tag Editor
    • File Organizer and Explorer
    • Multiple Libraries/Playlists support
    • System monitor ( CPU , RAM )
    • Audio Effects and Filters
  • TODO 🚧
    • XR3Player is actively developed. More features will come!
    • Support all audio file formats by default
    • Support all video file formats by default
    • Speech Recongition
    • Smart AI Assistant
    • Online Subscription website
    • Android and IOS applications

Java Audio Tutorials and API's by GOXR3PLUS STUDIO

QUESTIONS

System Requirements

1) At least 4 Cores CPU > 2.0 GHZ CPU Intel or AMD 
 
2) A good GPU (Graphics Processing Unit) [ It requires graphic power for visualizers ]

3) At least 4GB DDR3|DDR4 Ram [ Java Programs are known to consume a little bit more RAM ;) ]

License

https://www.google.com/search?q=GNU+LGPL+3.0&oq=GNU+LGPL+3.0&aqs=chrome..69i57j0.6247j0j4&sourceid=chrome&ie=UTF-8

About JxBrowser -- JX BROWSER IS BEING REMOVED

XR3Player uses JxBrowser http://www.teamdev.com/jxbrowser, which is a proprietary software, owned by TeamDev Ltd. The use of JxBrowser >is governed by JxBrowser Product Licence Agreement http://www.teamdev.com/jxbrowser-licence-agreement. You may not use JxBrowser separately from XR3Player project without explicit permission of TeamDev Ltd.

Specs / Open-source libraries:

  • Ikonli Font Icons packs Ikonli provides icon packs that can be used in Java applications. Currently Swing and JavaFX UI toolkits are supported.
  • ControlsFX UI controls and useful API for JavaFX 8.0 and beyond .
  • JFoenix JavaFX Material Design Library .
  • RichTextFX RichTextFX provides a memory-efficient text area for JavaFX that allows the developer to style ranges of text, display custom objects in-line (no more HTMLEditor), and override the default behavior only where necessary without overriding any other part of the behavior.
  • FX-BorderlessScene Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls.
  • JavaSysmon2 Manage OS processes and get cpu and memory stats cross-platform in Java.
  • Jnativehook Global keyboard and mouse listeners for Java .
  • Sqlite-jdbc SQLite JDBC Driver .
  • Commons-Validator A common issue when receiving data either electronically or from user input is verifying the integrity of the data. This work is repetitive and becomes even more complicated when different sets of validation rules need to be applied to the same set of data based on locale. Error messages may also vary by locale. This package addresses some of these issues to speed development and maintenance of validation rules.
  • EasyBind EasyBind leverages lambdas to reduce boilerplate when creating custom bindings, provides a type-safe alternative to Bindings.select* methods (inspired by Anton Nashatyrev's feature request, planned for JavaFX 9) and adds monadic operations to ObservableValue.
  • JSoup Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.
  • JSON-Simple Java 7+ toolkit to quickly develop RFC 4627 JSON compatible applications
  • Java-Google-Speech-API J.A.R.V.I.S. Java Speech API: Just A Reliable Vocal Interpreter & Synthesizer. This is a project for the Java Speech API. The program interprets vocal inputs into text and synthesizes voices from text input. The program supports dozens of languages and even has the ability to auto-detect languages!
  • JAudioTagger Jaudiotagger is the Audio Tagging library used by Jaikoz for tagging data in Audio files.
  • Java-Stream-Player Java Advanced Audio Controller Library (WAV, AU, AIFF, MP3, OGG VORBIS, FLAC, MONKEY's AUDIO and SPEEX audio formats ).
  • JavaFX-Web-Browser Embeddable or Standalone JavaFX Web Browser.
  • Mp3agic A java library for reading mp3 files and reading / manipulating the ID3 tags (ID3v1 and ID3v2.2 through ID3v2.4).
  • JAVE2 The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project

Build Status

xr3player's People

Contributors

dependabot[bot] avatar gitter-badger avatar goxr3plus avatar helgestenstrom 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

xr3player's Issues

Visualizers Drawers make application UI Freeze

Due to heavy re-rendering that Visualizers of Players need ( 60FPS ) the application is freezing a lot of times making it hard or even not usable at all .

Investigation should be done on how to minimize or completely eliminate that behaviour.

@HelgeStenstrom This will be done probably completely because i don't know how much you understand the internals of JavaFX Canvas redrawing etc :) .

Holla the application is reaching 250 stars . Not bad :)

Complete/Fix/Standardize JavaDoc

  1. Write JavaDoc comments for all class variables and functions.
  2. In many cases, there are multi-line JavaDoc comments where the opening /** and closing */ could be moved onto the same line as the comment itself.
  3. There are functions with unfinished JavaDoc comments.
  4. JavaDoc comments on classes can be removed if they have no useful information (Ex. A one-line description of the class and author tag).

Filename should end in .flac

because it's a flac file.

Also:

what is the purpose of MicAvailabilityChecker? How do you check that the microphone is actually available? I found the bug because I found the file and couldn't play it. I found out it was a flac file, but I still couldn't play it. Do you run the program, and then play the file, or do you just run the program and be satisfied if it finishes without problems? If so, you don't have to save the file to disc. Use captureAudioToFile(File audioFile) with a file-like object as parameter.

How to use advanced UI?

How to use advanced UI? Is there a switch to open it?
Maybe you can write a manual about the player, it is too complicated.

Tabs or spaces?

Do you want the code indented by tabs or spaces?
Personally, I prefer spaces.

SonarLint plugin

IntelliJ has a plugin named SonarLint, available for Eclipse too.
It finds a lot of code issues, and comes with good recommendations.
At my workplace, the setup is such that we cannot merge new changes with the master, unless they are "Sonar clean".

SonarLint is an IDE extension that helps you detect and fix quality issues as you write code. Like a spell checker, SonarLint squiggles flaws so they can be fixed before committing code. You can get it directly from the IntelliJ IDEA Plugin Repository, and it will then detect new bugs and quality issues as you code (Java, Kotlin, Ruby, JavaScript, PHP and Python).
If your project is analyzed on SonarQube or on SonarCloud, SonarLint can connect to the server to retrieve the appropriate quality profiles and settings for that project. Java 8 is required to run SonarLint.

More info available at https://www.sonarsource.com/

Is any main class/method expected to work on Mac?

I found three main methods, that I tried to run, but all three fails with an exception.

DJDiscResizer fails with InvocationTargetException

Main fails with InvocationTargetException

MicrophonePCMAnalyzerTest brings up a window (which is empty), but repeatedly throws an NullPointerException

Perhaps some of these are caused by the way I run the program. I'm using IntelliJ IDEA, and start these three classes from the IDE. Not sure which details about the runtime configuration that could be useful.

Which java version?

One page mentions JDK 9+ (https://github.com/goxr3plus/XR3Player/blob/master/CONTRIBUTING.md), the readme says [JDK 10.0.2+].

I tried with JDK 11.0.1, because I have it on my machine. To get that to work, I had to add a couple of dependencies in the pom.xml file:

	<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-controls -->
	<dependency>
		<groupId>org.openjfx</groupId>
		<artifactId>javafx-controls</artifactId>
		<version>11.0.2</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml -->
	<dependency>
		<groupId>org.openjfx</groupId>
		<artifactId>javafx-fxml</artifactId>
		<version>11.0.2</version>
	</dependency>

What do you use for development?

error using "All in XR3Player" run configuration

Using IntellijIDEA community 2023.1 and Amazon Corretto version 20.

I am getting this error using "All in XR3Player" run configuration. java.lang.NullPointerException: Cannot invoke "com.sun.glass.ui.Timer.resume()" because "this.pulseTimer" is null ... What am I missing?

Help needed for modularizing for Java 11 ++

Hello my dear friends :)

I need immediate help of modularizing XR3Player for Java 11 and above , i am still learning and it needs a good effort :)

Thank anyone for helping :)

If you have some free time :)
@Valkryst

Would GitHub Actions be of any interest?

From my understanding, the project can be built and unit tested in the GitHub environment, and Actions is what controls this.
I think it would benefit the project to have automated unit tests being run when someone sends a pull request or similar.

Currently, I don't have any experience with this. My workplace project has a CI pipeline that uses Gerrit and Jenkins. This environment is different, but hopefully it can do similar things. If there is any interest, I'm willing to give it a try, to set up the flow. Even if it fails, I can hopefully learn something.

module java.base does not open java.lang.reflect to module XR3Player

When I start XR3Player (current master branch), I get the following written to the console, including error messages. I'm running in IntelliJ IDEA Community 2019.2.

Entered JavaFX Application Start Method
Path :-> /Users/helge/Documents/GitHub/XR3Player/target/classes/
Stream player Status -> NOT_SPECIFIED
Stream player Status -> NOT_SPECIFIED
Stream player Status -> NOT_SPECIFIED
java.lang.RuntimeException: java.lang.IllegalAccessException: module java.base does not open java.lang.reflect to module XR3Player
at XR3Player/com.goxr3plus.xr3player.application.MainLoader.makeNonFinal(MainLoader.java:428)
at XR3Player/com.goxr3plus.xr3player.application.MainLoader.lambda$startPart2$9(MainLoader.java:358)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: java.lang.IllegalAccessException: module java.base does not open java.lang.reflect to module XR3Player
at java.base/java.lang.invoke.MethodHandles.privateLookupIn(MethodHandles.java:206)
at XR3Player/com.goxr3plus.xr3player.application.MainLoader.makeNonFinal(MainLoader.java:425)
... 2 more
XR3Player ready to rock!

Could not find ffmpeg executable for native/ffmpeg-amd64.exe is the correct platform jar included? java.lang.NullPointerException

I am trying to use Jave2 version 2.5.0 today and i am getting the below error :

Jun 06, 2019 5:41:36 PM ws.schild.jave.DefaultFFMPEGLocator copyFile
SEVERE: Could not find ffmpeg executable for native/ffmpeg-amd64.exe is the correct platform jar included?
java.lang.NullPointerException
	at java.base/java.util.Objects.requireNonNull(Objects.java:221)
	at java.base/java.nio.file.Files.copy(Files.java:3109)
	at jave.core@2.5.0/ws.schild.jave.DefaultFFMPEGLocator.copy(DefaultFFMPEGLocator.java:167)
	at jave.core@2.5.0/ws.schild.jave.DefaultFFMPEGLocator.copyFile(DefaultFFMPEGLocator.java:132)
	at jave.core@2.5.0/ws.schild.jave.DefaultFFMPEGLocator.<init>(DefaultFFMPEGLocator.java:92)
	at jave.core@2.5.0/ws.schild.jave.Encoder.<init>(Encoder.java:86)
	at XR3Player/com.goxr3plus.xr3player.xplayer.waveform.WaveFormService$1.transcodeToWav(WaveFormService.java:364)
	at XR3Player/com.goxr3plus.xr3player.xplayer.waveform.WaveFormService$1.processFromNoWavFile(WaveFormService.java:207)
	at XR3Player/com.goxr3plus.xr3player.xplayer.waveform.WaveFormService$1.call(WaveFormService.java:158)
	at XR3Player/com.goxr3plus.xr3player.xplayer.waveform.WaveFormService$1.call(WaveFormService.java:142)
	at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Task.java:1425)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at javafx.graphics/javafx.concurrent.Service.lambda$executeTask$6(Service.java:725)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
	at javafx.graphics/javafx.concurrent.Service.lambda$executeTask$7(Service.java:724)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:835)

Packaging Linux

Hi!, Can You give me Jar File.. of This... I will Package it For Linux!

Cannot run

After successful build:

 java --module-path C:\openjfx-18.0.2_windows-x64_bin-sdk\javafx-sdk-18.0.2\lib --add-modules javafx.controls,javafx.fxml -jar .\XR3Player.jar
Entered JavaFX Application Start Method
Path :-> C:\Users\u\XR3Player\target\
Exception in Application start method
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:465)
        at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1081)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
        at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalAccessError: superclass access check failed: class javafx.scene.media.NGMediaView (in unnamed module @0x3a8b3cea) cannot access class com.sun.javafx.sg.prism.NGNode (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.sg.prism to unnamed module @0x3a8b3cea
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3405)
        at java.base/java.lang.Class.getConstructors(Class.java:2092)
        at [email protected]/com.sun.javafx.reflect.ConstructorUtil.getConstructors(ConstructorUtil.java:43)
        at [email protected]/javafx.fxml.JavaFXBuilderFactory.scanForConstructorAnnotations(JavaFXBuilderFactory.java:173)
        at [email protected]/javafx.fxml.JavaFXBuilderFactory.getBuilder(JavaFXBuilderFactory.java:160)
        at [email protected]/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1014)
        at [email protected]/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:757)
        at [email protected]/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2808)
        at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2634)
        at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
        at [email protected]/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516)
        at com.goxr3plus.xr3player.controllers.general.WelcomeScreen.<init>(WelcomeScreen.java:69)
        at com.goxr3plus.xr3player.application.MainLoader.startPart1(MainLoader.java:174)
        at com.goxr3plus.xr3player.application.MainLoader.startPart0(MainLoader.java:99)
        at com.goxr3plus.xr3player.application.Main.start(Main.java:330)
        at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
        at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
        at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
        at [email protected]/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at [email protected]/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at [email protected]/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
        ... 1 more
Exception running application com.goxr3plus.xr3player.application.Main

Exceptions when running Main

Using Mac, IntelliJ, Java 10 (I'm not sure about the exact version)

I get the following errors:

/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/java "-javaagent:/Users/helge/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/191.6183.87/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=59564:/Users/helge/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/191.6183.87/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/helge/Documents/GitHub/XR3Player/target/classes:/Users/helge/.m2/repository/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.jar:/Users/helge/.m2/repository/org/testfx/testfx-junit5/4.0.15-alpha/testfx-junit5-4.0.15-alpha.jar:/Users/helge/.m2/repository/org/testfx/testfx-core/4.0.15-alpha/testfx-core-4.0.15-alpha.jar:/Users/helge/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/helge/.m2/repository/org/assertj/assertj-core/3.11.1/assertj-core-3.11.1.jar:/Users/helge/.m2/repository/org/openjfx/javafx-controls/11.0.2/javafx-controls-11.0.2.jar:/Users/helge/.m2/repository/org/openjfx/javafx-controls/11.0.2/javafx-controls-11.0.2-mac.jar:/Users/helge/.m2/repository/org/openjfx/javafx-graphics/11.0.2/javafx-graphics-11.0.2.jar:/Users/helge/.m2/repository/org/openjfx/javafx-graphics/11.0.2/javafx-graphics-11.0.2-mac.jar:/Users/helge/.m2/repository/org/openjfx/javafx-base/11.0.2/javafx-base-11.0.2.jar:/Users/helge/.m2/repository/org/openjfx/javafx-base/11.0.2/javafx-base-11.0.2-mac.jar:/Users/helge/.m2/repository/org/openjfx/javafx-fxml/11.0.2/javafx-fxml-11.0.2.jar:/Users/helge/.m2/repository/org/openjfx/javafx-fxml/11.0.2/javafx-fxml-11.0.2-mac.jar:/Users/helge/.m2/repository/org/openjfx/javafx-media/11.0.2/javafx-media-11.0.2.jar:/Users/helge/.m2/repository/org/openjfx/javafx-media/11.0.2/javafx-media-11.0.2-mac.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-javafx/2.4.0/ikonli-javafx-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-core/2.4.0/ikonli-core-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-typicons-pack/2.4.0/ikonli-typicons-pack-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-fontawesome-pack/2.4.0/ikonli-fontawesome-pack-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-material-pack/2.4.0/ikonli-material-pack-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-fontawesome5-pack/2.4.0/ikonli-fontawesome5-pack-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-runestroicons-pack/2.4.0/ikonli-runestroicons-pack-2.4.0.jar:/Users/helge/.m2/repository/org/kordamp/ikonli/ikonli-icomoon-pack/2.4.0/ikonli-icomoon-pack-2.4.0.jar:/Users/helge/.m2/repository/com/github/imcdonagh/image4j/0.7.2/image4j-0.7.2.jar:/Users/helge/.m2/repository/com/teamdev/jxbrowser/jxbrowser-win64/6.23/jxbrowser-win64-6.23.jar:/Users/helge/.m2/repository/com/teamdev/jxbrowser/jxbrowser/6.23/jxbrowser-6.23.jar:/Users/helge/.m2/repository/org/controlsfx/controlsfx/9.0.0/controlsfx-9.0.0.jar:/Users/helge/.m2/repository/com/jfoenix/jfoenix/9.0.8/jfoenix-9.0.8.jar:/Users/helge/.m2/repository/org/fxmisc/richtext/richtextfx/0.9.3/richtextfx-0.9.3.jar:/Users/helge/.m2/repository/org/reactfx/reactfx/2.0-M5/reactfx-2.0-M5.jar:/Users/helge/.m2/repository/org/fxmisc/undo/undofx/2.1.0/undofx-2.1.0.jar:/Users/helge/.m2/repository/org/fxmisc/flowless/flowless/0.6/flowless-0.6.jar:/Users/helge/.m2/repository/org/fxmisc/wellbehaved/wellbehavedfx/0.3.3/wellbehavedfx-0.3.3.jar:/Users/helge/.m2/repository/com/1stleg/jnativehook/2.1.0/jnativehook-2.1.0.jar:/Users/helge/.m2/repository/org/xerial/sqlite-jdbc/3.25.2/sqlite-jdbc-3.25.2.jar:/Users/helge/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar:/Users/helge/.m2/repository/commons-validator/commons-validator/1.6/commons-validator-1.6.jar:/Users/helge/.m2/repository/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar:/Users/helge/.m2/repository/org/json/json/20180130/json-20180130.jar:/Users/helge/.m2/repository/com/github/goxr3plus/java-google-speech-api/V2.1/java-google-speech-api-V2.1.jar:/Users/helge/.m2/repository/com/github/axet/java-flac-encoder/0.3.8/java-flac-encoder-0.3.8.jar:/Users/helge/.m2/repository/com/mpatric/mp3agic/0.9.1/mp3agic-0.9.1.jar:/Users/helge/.m2/repository/com/github/goxr3plus/jaudiotagger/V2.2.6/jaudiotagger-V2.2.6.jar:/Users/helge/.m2/repository/com/github/goxr3plus/java-stream-player/V8.0.0/java-stream-player-V8.0.0.jar:/Users/helge/.m2/repository/com/googlecode/soundlibs/mp3spi/1.9.5.4/mp3spi-1.9.5.4.jar:/Users/helge/.m2/repository/com/googlecode/soundlibs/jlayer/1.0.1.4/jlayer-1.0.1.4.jar:/Users/helge/.m2/repository/junit/junit/3.8.2/junit-3.8.2.jar:/Users/helge/.m2/repository/org/jflac/jflac-codec/1.5.2/jflac-codec-1.5.2.jar:/Users/helge/.m2/repository/com/github/Trilarion/java-vorbis-support/v1.0.0/java-vorbis-support-v1.0.0.jar:/Users/helge/.m2/repository/com/googlecode/soundlibs/tritonus-share/0.3.7.4/tritonus-share-0.3.7.4.jar:/Users/helge/.m2/repository/com/googlecode/soundlibs/tritonus-all/0.3.7.2/tritonus-all-0.3.7.2.jar:/Users/helge/.m2/repository/com/googlecode/soundlibs/jorbis/0.0.17-2/jorbis-0.0.17-2.jar:/Users/helge/.m2/repository/com/github/goxr3plus/FX-BorderlessScene/V3.1.0/FX-BorderlessScene-V3.1.0.jar:/Users/helge/.m2/repository/com/dropbox/core/dropbox-core-sdk/3.0.11/dropbox-core-sdk-3.0.11.jar:/Users/helge/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.7.4/jackson-core-2.7.4.jar:/Users/helge/.m2/repository/org/atteo/evo-inflector/1.2.2/evo-inflector-1.2.2.jar:/Users/helge/.m2/repository/ws/schild/jave-native-win64/2.4.5/jave-native-win64-2.4.5.jar:/Users/helge/.m2/repository/ws/schild/jave-core/2.4.5/jave-core-2.4.5.jar:/Users/helge/.m2/repository/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar:/Users/helge/.m2/repository/com/github/goxr3plus/XR3Capture/V101/XR3Capture-V101.jar:/Users/helge/.m2/repository/com/github/goxr3plus/javasysmon2/8.0.0/javasysmon2-8.0.0.jar:/Users/helge/.m2/repository/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar:/Users/helge/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar main.java.com.goxr3plus.xr3player.application.Main
Entered JavaFX Application Start Method
Path :-> /Users/helge/Documents/GitHub/XR3Player/target/classes/
apr. 15, 2019 7:07:04 EM javafx.fxml.FXMLLoader$ValueElement processValue
VARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 10
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.fxmisc.richtext.TextFlowExt (file:/Users/helge/.m2/repository/org/fxmisc/richtext/richtextfx/0.9.3/richtextfx-0.9.3.jar) to method javafx.scene.text.TextFlow.getTextLayout()
WARNING: Please consider reporting this to the maintainers of org.fxmisc.richtext.TextFlowExt
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
apr. 15, 2019 7:07:05 EM javafx.fxml.FXMLLoader$ValueElement processValue
VARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 10
apr. 15, 2019 7:07:05 EM javafx.fxml.FXMLLoader$ValueElement processValue
VARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 10
apr. 15, 2019 7:07:05 EM javafx.fxml.FXMLLoader$ValueElement processValue
VARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 10
Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:473)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:372)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:941)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:973)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:198)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.ExceptionInInitializerError
at main.java.com.goxr3plus.xr3player.controllers.djmode.DJMode.(DJMode.java:46)
at main.java.com.goxr3plus.xr3player.application.MainLoader.startPart1(MainLoader.java:238)
at main.java.com.goxr3plus.xr3player.application.MainLoader.startPart0(MainLoader.java:75)
at main.java.com.goxr3plus.xr3player.application.Main.start(Main.java:307)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:919)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
Caused by: java.lang.NullPointerException
at javafx.graphics/com.sun.javafx.tk.quantum.CursorUtils.getBestCursorSize(CursorUtils.java:63)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.getBestCursorSize(QuantumToolkit.java:1005)
at javafx.graphics/javafx.scene.ImageCursor.getBestSize(ImageCursor.java:228)
at main.java.com.goxr3plus.xr3player.controllers.xplayer.XPlayerController.(XPlayerController.java:437)
... 10 more
Exception running application main.java.com.goxr3plus.xr3player.application.Main

Process finished with exit code 1

JxBrowser 7 migration

As you can see in the application we are having a chromium browser which works based on JxBrowser, now i am trying to migrate from version 6.21.1 to version 7. So i have created a new branch JxBrowser 7 as you can see, but it doesn't work at my computer can you give it a run and let me know if it works on your computer?

@HelgeStenstrom

VM arguments ad add-exports

The VM arguments, as written in README.md are probably slightly wrong. I don't think there should be an equal sign after add-exports or add-opens.
See for example: https://javaworklife.wordpress.com/2019/05/20/java11-intellij-running-tests-with-add-exports-in-intellij/

So it should be:
--add-exports javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix
--add-exports javafx.controls/com.sun.javafx.scene.control=com.jfoenix
--add-exports javafx.base/com.sun.javafx.binding=com.jfoenix
--add-exports javafx.graphics/com.sun.javafx.stage=com.jfoenix
--add-exports javafx.base/com.sun.javafx.event=com.jfoenix
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-exports javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls,
--add-exports javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls

Odd package name hierarchy

Usually the packet name path looks like a web address in reverse, starting with com. or org.

package main.java.com.goxr3plus.xr3player.application

doesn't follow that pattern. It looks like a common directory structure has invaded the package names. The package name above should be com.goxr3plus.xr3player.application, and the root package com should be placed in the directory main/java. In IntelliJ, main/java can be marked as sources root, and there could be a complementary main/test test root directory.

Make default player in Windows

Firstly, thank you very much for such a powerful music player! Added it to the site about free software, here is the link.

Secondly, you can’t add to it the ability to make it the default player? I know perfectly well how to do this manually, but some category of users will constantly ask, so it would be nice to add this feature to it.

Cannot run

After successful build:

 java --module-path C:\openjfx-18.0.2_windows-x64_bin-sdk\javafx-sdk-18.0.2\lib --add-modules javafx.controls,javafx.fxml -jar .\XR3Player.jar
Entered JavaFX Application Start Method
Path :-> C:\Users\u\XR3Player\target\
Exception in Application start method
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:465)
        at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1081)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
        at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalAccessError: superclass access check failed: class javafx.scene.media.NGMediaView (in unnamed module @0x3a8b3cea) cannot access class com.sun.javafx.sg.prism.NGNode (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.sg.prism to unnamed module @0x3a8b3cea
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3405)
        at java.base/java.lang.Class.getConstructors(Class.java:2092)
        at [email protected]/com.sun.javafx.reflect.ConstructorUtil.getConstructors(ConstructorUtil.java:43)
        at [email protected]/javafx.fxml.JavaFXBuilderFactory.scanForConstructorAnnotations(JavaFXBuilderFactory.java:173)
        at [email protected]/javafx.fxml.JavaFXBuilderFactory.getBuilder(JavaFXBuilderFactory.java:160)
        at [email protected]/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(FXMLLoader.java:1014)
        at [email protected]/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:757)
        at [email protected]/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2808)
        at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2634)
        at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
        at [email protected]/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516)
        at com.goxr3plus.xr3player.controllers.general.WelcomeScreen.<init>(WelcomeScreen.java:69)
        at com.goxr3plus.xr3player.application.MainLoader.startPart1(MainLoader.java:174)
        at com.goxr3plus.xr3player.application.MainLoader.startPart0(MainLoader.java:99)
        at com.goxr3plus.xr3player.application.Main.start(Main.java:330)
        at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
        at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
        at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
        at [email protected]/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at [email protected]/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at [email protected]/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
        ... 1 more
Exception running application com.goxr3plus.xr3player.application.Main

XXE in Playlist Parsers

The Issue

An XML External Entity attack is a type of attack against an application that parses XML input. This attack occurs when XML input containing a reference to an external entity is processed by a weakly configured XML parser. This attack may lead to the disclosure of confidential data, denial of service, server side request forgery, port scanning from the perspective of the machine where the parser is located, and other system impacts.

Where the Issue Occurred

The following code snippets display the usage of documentbuilderfactory without securely disabling entities:

https://github.com/wseemann/JavaPlaylistParser/blob/c2c6c9fb54d135b02cfe8d9452566997cd86d9b1/src/wseemann/media/jplaylistparser/parser/asx/ASXPlaylistParser.java#L136

Remediation

https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet

Broken browser resolution

Browser in my version is allowing to view only top-left corner of screen and has no sliders or any other settings. Firstly i thought it is a stylish feature, but even in that case it needs to have ability to switch normal resolution. Also any error within the browser causes crash of all the program...

Isn't there a better way to exit the application, than to call System.exit()?

Calling System.exit() is a pretty brutal way of exiting.
Most programs don't need that. Since this is a multithreaded program, you need to stop the execution of these threads. There are less brutal ways to do it, like, letting them exit the loops they are in, and run to their respective ends. Then they can be joined with the main thread.

Disclaimer: I'm much less experienced with multithreaded programming than you are. I might be wrong.

Nothing should depend on Main.

In the book Clean Architecture by Robert C Martin, the author recommends that nothing should depend on Main. The purpose of Main should simply be to start the application. There could potentially be several different Main classes (for different use cases), and the rest of the application would be totally ignorant about this.
The theme of the book is maintainability. A change in a file that should be easy to change (such as Main) should not force a lot of other files to have to be changed.

As a consequence, there cannot be any public fields in Main.

With that in mind, I have started to move fields from Main. I have moved fields that are written only once, by the MainLoader class, to that (MainLoader) class.
I have also encapsulated the fields; changed them from public to private, and introduced getter methods in the client code.

See https://github.com/HelgeStenstrom/XR3Player/tree/moveFromMain (my repo and branch)
HelgeStenstrom@3283ca7 (the commit to my repo)

Unwanted dependency on a stream player.

import com.goxr3plus.streamplayer.stream.ThreadFactoryWithNamePrefix;

This package com.goxr3plus.xr3player.services.chromium is not about playing streams, and com.goxr3plus.streamplayer.stream has nothing to do with what a web browser needs. I think this dependency should be removed.

One way to do it, is to depend on a class of XR3Player instead, which provides the same functionality. This XR3Player class may depend on StreamPlayer, but this particular class doesn't have to.

Let every class, every package and every module have a single responsibility. Although att different abstraction levels.

What if you decide to move StreamPlayer to Java-9 modules? Would you then want to export ThreadFactoryWithNamePrefix from it? I wouldn't do it.

Creating visualizer objects

It seems to me that it's currently not possible to create an instance of Oscilloscope, without also creating an instance of Polyspiral, and vice versa. I think that's unfortunate. Am I right, and can that dependency be broken?

Apart from these two classes, the same dependency is between instances of all classes created at lin 24-28 of VisualizerDrawer.

Tell me about how you use your own separate libraries in this project

I'm curious to how you work with changes in java-stream-player that you do for the needs of XR3Player.

Do you use java-stream-player as a compiled jar-file when you run XR3Player?
If so, do you download it from the same repository as I get it from, or is it just local on your machine?
If it's on your local machine, can you have the same pom.xml file as I have, i.e., the same as exists here on GitHub? Or do you tweak the pom file to look in a local repository?
What is the turn-around time from a small change in java-stream-player until you can test it in XR3Player?

New Logo Design

xr3player

Hi,

I have studied your work and I think a new design will make you more visible. I designed for you, I hope you like it and you want to use it. If you want to reach me, you can look at the my profile. I can give you all the formats of the design free. If you want a change please specify.

Feature Request

Feature Request

  1. Option to add lyrics content to the song
  2. Option in json or any file to synchronize lyrics with song for every line or sentence which starts from
  3. Option to have preset for music change
  4. option to import local folders
  5. support for old formats (.rm and .ram of real media player files)

Demos where lyrics can be synchronized with audio

Working Demo1: https://codepen.io/z-/pen/MQRGOe
Working Demo2: http://lusaisai.github.io/Lyricer/ (https://github.com/lusaisai/Lyricer)
Working Demo3: https://wafarifki.github.io/musicwithlyrics/ (https://github.com/wafarifki/musicwithlyrics)
Working Demo4: https://music.felixyeung.com/ (https://github.com/felixyeungdev/music.felixyeung.dev)
Working Demo5: https://guoyunhe.github.io/rabbit-lyrics/ (https://github.com/guoyunhe/rabbit-lyrics)

logo proposal

Hello! @goxr3plus

I'm a graphic designer and I like to support your project because I believe a good logo that reflects your project at its best can help the project publicity and trustability, also i'm an open source enthusiast. I would like to design a logo for your project if you interested, I will be happy to work with you! :)

Best Regards

Leonardo Deroy

Graphic Designer

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.