private void playAudio(Media media) { if (mediaView.isVisible() == true) { mediaView.setVisible(false); display.setVisible(true); } if (mp != null) { mp.dispose(); } mp = new MediaPlayer(media); mp.play(); mp.setAudioSpectrumListener( (double timestamp, double duration1, float[] magnitudes, float[] phases) -> { display.getChildren().clear(); int i = 0; int x = 10; double y = root.getScene().getHeight() / 2; Random rand = new Random(System.currentTimeMillis()); for (float phase : phases) { int red = rand.nextInt(255); int green = rand.nextInt(255); int blue = rand.nextInt(255); Circle circle = new Circle(10); circle.setCenterX(x + i); circle.setCenterY(y + (phase * 100)); circle.setFill(Color.rgb(red, green, blue, .70)); display.getChildren().add(circle); i += 10; } }); }
public void open(PagedListEntry entry) { try { if (MediaManager.canPlayProtocol("https")) BackgroundLoader.addTaskWithTimeout( () -> { if (entry instanceof PlayList) { // expand inner playlists currentPlaylist.remove(entry); PagedList<PagedListEntry> innerPlaylist = ((PlayList) entry).getTrackList(); currentPlaylist.addAll(playlistPosition, innerPlaylist); currentTrack = (Track) currentPlaylist.get(++playlistPosition); } else { currentTrack = (Track) entry; } String url = currentTrack.getStreamURL(); currentMedia = new Media(url); stop(); currentTrack.getWaveform().resetProgress(); player = new MediaPlayer(currentMedia); player.volumeProperty().bindBidirectional(volumeSliderProb); player.setOnEndOfMedia(this::next); // TODO: append listener to new player player.setAudioSpectrumListener(audioSpectrumListener); player.play(); isPlaying = true; UIManager.setTrackForPlayerUI(currentTrack, currentPlaylist); UIManager.setPlayPauseIcon(isPlaying); }, 3 * 1000); } catch (NoSuchMethodError error) { // the support came together with that method String version = com.sun.javafx.runtime.VersionInfo.getRuntimeVersion(); log.log(LogType.PLAYER, "JavaFx version does not support https protocol"); log.log(LogType.PLAYER, "Min version = 8.0.72. Current version " + version); } }
public void setAudioSpectrumListener(AudioSpectrumListener audioSpectrumListener) { this.audioSpectrumListener = audioSpectrumListener; if (player != null) { player.setAudioSpectrumListener(audioSpectrumListener); } }