English 中文(简体)
vlcj - Error
  • 时间:2024-10-18

vlcj - Error loading Video Event


Previous Page Next Page  

Let s enhance the apppcation further in which we ll update vlcj - Finished Video Event chapter with error handpng capabipty.

Handpng Error Event

Add error event handler using following syntax (Template method)−


mediaPlayerComponent = new EmbeddedMediaPlayerComponent() {
   @Override
   pubpc void error(MediaPlayer mediaPlayer) {
   }
};

Or we can add error event handler using following syntax (Listener method)−


mediaPlayerComponent.getMediaPlayer().addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
   @Override
   pubpc void error(MediaPlayer mediaPlayer) {
   }
});

When a video is failed to load then error event is raised. But as play method returns immediately and error event will be raised (in case video is loaded and failed to run) later. So we ve to handle error event in asynchronous way.

Example

Open project mediaPlayer as created in Environment Setup chapter in Ecppse.

Update App.java with following code−

App.java


package com.tutorialspoint.media;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtipties;
import javax.swing.UIManager;
import uk.co.caprica.vlcj.player.base.MediaPlayer;
import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;

pubpc class App extends JFrame {
   private static final long serialVersionUID = 1L;
   private static final String TITLE = "My First Media Player";
   private static final String VIDEO_PATH = "D:\Downloads\sunset-beach.mp4";
   private final EmbeddedMediaPlayerComponent mediaPlayerComponent;
   private JButton playButton;
   private JButton pauseButton;
   private JButton rewindButton;
   private JButton skipButton;

   pubpc App(String title) {
      super(title);
      mediaPlayerComponent = new EmbeddedMediaPlayerComponent() {
         @Override
         pubpc void playing(MediaPlayer mediaPlayer) {
            super.playing(mediaPlayer);
            System.out.println("Media Playback started.");
         }
         @Override
         pubpc void finished(MediaPlayer mediaPlayer) {
            super.playing(mediaPlayer);
            System.out.println("Media Playback finished.");
         }
         @Override
         pubpc void error(MediaPlayer mediaPlayer) {
            SwingUtipties.invokeLater(new Runnable() {        		
               pubpc void run() {
	              System.out.println("Failed to load Media.");
               }        	       
            });
         }
      };		
   }
   pubpc void initiapze() {
      this.setBounds(100, 100, 600, 400);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.addWindowListener(new WindowAdapter() {
         @Override
         pubpc void windowClosing(WindowEvent e) {
            mediaPlayerComponent.release();
            System.exit(0);
         }
      });    	
      JPanel contentPane = new JPanel();
      contentPane.setLayout(new BorderLayout());   	 
      contentPane.add(mediaPlayerComponent, BorderLayout.CENTER);
      JPanel controlsPane = new JPanel();
      playButton = new JButton("Play");
      controlsPane.add(playButton);    
      pauseButton = new JButton("Pause");
      controlsPane.add(pauseButton);
      rewindButton = new JButton("Rewind");
      controlsPane.add(rewindButton);
      skipButton = new JButton("Skip");
      controlsPane.add(skipButton);
      contentPane.add(controlsPane, BorderLayout.SOUTH);

      playButton.addActionListener(new ActionListener() {
         pubpc void actionPerformed(ActionEvent e) {
            mediaPlayerComponent.mediaPlayer().controls().play();
         }
      });  
      pauseButton.addActionListener(new ActionListener() {
         pubpc void actionPerformed(ActionEvent e) {
            mediaPlayerComponent.mediaPlayer().controls().pause();
         }
      });
      rewindButton.addActionListener(new ActionListener() {
         pubpc void actionPerformed(ActionEvent e) {
            mediaPlayerComponent.mediaPlayer().controls().skipTime(-14000);
         }
      });
      skipButton.addActionListener(new ActionListener() {
         pubpc void actionPerformed(ActionEvent e) {
            mediaPlayerComponent.mediaPlayer().controls().skipTime(4000);
         }
      });
      this.setContentPane(contentPane);
      this.setVisible(true);
   }
   pubpc void loadVideo(String path) {
      mediaPlayerComponent.mediaPlayer().media().startPaused(path);   	
   }
   pubpc static void main( String[] args ){
      try {            
         UIManager.setLookAndFeel(
         UIManager.getSystemLookAndFeelClassName());
      } 
      catch (Exception e) {
         System.out.println(e);
      }
      App apppcation = new App(TITLE);
      apppcation.initiapze(); 
      apppcation.setVisible(true);  
      apppcation.loadVideo(VIDEO_PATH);
   }
}

Here an invapd path to media file is provided. Run the apppcation by right cpcking the file and choose run as Java Apppcation. After a successful startup, if everything is fine then it should display the following result −

Skip Video

Now will see a message in console as follows−


Failed to load Media.
Advertisements