Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

JavaFX: Media type tracking

Tracking dei media in Java: come sviluppare un controllo con cui scegliere quali parti di un media riprodurre specificando offset di inizio e fine.
Tracking dei media in Java: come sviluppare un controllo con cui scegliere quali parti di un media riprodurre specificando offset di inizio e fine.
Link copiato negli appunti

Di default il player inizia la riproduzione dalla posizione iniziale:istante 0. Ad esempio se la durata del media è di 10 minuti, il media stesso verrà riprodotto per 10 minuti in un ciclo. La classe MediaPlayer consente di specificare la lunghezza del playback all'interno della linea temporale del media.

Possiamo quindi scegliere quali parti del media mandare in riproduzione specificando un offset di inizio e uno di fine. A questa operazione diamo il nome di tracking del media.

Un player pronto all'uso

Riprendiamo il semplice video player con i due pulsanti play e stop ma arricchito dalla gestione degli errori:

public class FxMediaExample extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }
    @Override
    public void start(Stage stage) throws MalformedURLException {
        URL mediaUrl = new URL("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
        Media media = new Media(mediaUrl.toExternalForm());
        MediaPlayer player = new MediaPlayer(media);
        player.setAutoPlay(false);
        Button playButton = new Button("Play");
        Button stopButton = new Button("Stop");
        playButton.setOnAction((ActionEvent event) -> {
            if (player.getStatus() == Status.PLAYING) {
                player.stop();
                player.play();
            } else {
                player.play();
            }
        });
        stopButton.setOnAction((ActionEvent event) -> {
            player.stop();
        });
        MediaView mediaView = new MediaView(player);
        mediaView.setFitWidth(350);
        mediaView.setFitHeight(200);
        mediaView.setSmooth(true);
        player.setOnError(() -> {
            errorMessage(player.getError());
        });
        media.setOnError(() -> {
            errorMessage(player.getError());
        });
        mediaView.setOnError((MediaErrorEvent event) -> {
            errorMessage(event.getMediaError());
        });
        HBox controlBox = new HBox(5, playButton, stopButton);
        VBox root = new VBox(5, mediaView, controlBox, markerMessage);
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.setTitle("Media Player Demo");
        stage.show();
    }
     private void errorMessage(MediaException error) {
        	MediaException.Type errorType = error.getType();
        	String errorMessage = error.getMessage();
        	System.out.println("Message:"+errorMessage+" Type:"+errorType);
    }
}

e proseguiamo aggiungendo un tracking che riproduca solo una parte del video.

Tracking

Attraverso le proprietà startTime e stopTime della classe MediaPlayer, possiamo specificare la lunghezza della porzione di media che vogliamo riprodurre.

Aggiungiamo quindi le seguenti linee di codice subitodopo il set dell'autoplay del video:

player.setStartTime(Duration.seconds(10));
player.setStopTime(Duration.seconds(20));

Impostiamo come false l'autoplay in modo da avere la riproduzione immediatamente in esecuzione e avviamo l'applicazione.

Noteremo che, invece di partire dall'inizio, la riproduzione del video inizierà dal punto corrispondente a un tempo di 10 secondi, proseguendo per altri 10 secondi fino al raggiungimento di un tempo di 20 secondi.


Ti consigliamo anche