la lecture de la vidéo à l'aide de jmf
Je suis en train de lire un fichier vidéo à l'aide de JMF
, mais il me donne No Media Player found exception
.
Voici mon code, quelqu'un peut-il me dire ce que je fais de mal ici?
public class MediaPanel extends JPanel {
public MediaPanel(URL mediaURL) {
setLayout(new BorderLayout());
try {
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
Player mediaPlayer = Manager.createRealizedPlayer(mediaURL);
Component video = mediaPlayer.getVisualComponent();
Component controls = mediaPlayer.getControlPanelComponent();
if (video != null)
add(video, BorderLayout.CENTER);
if (controls != null)
add(controls, BorderLayout.SOUTH);
mediaPlayer.start();
} catch (NoPlayerException noPlayerException) {
System.err.println("No media player found");
} //end catch
catch (CannotRealizeException cannotRealizeException) {
System.err.println("Could not realize media player");
} //end catch
catch (IOException iOException) {
System.err.println("Error reading from the source");
}
}
}
public class MediaTest {
public static void main(String args[]) {
//create a file chooser
JFileChooser fileChooser = new JFileChooser();
//show open file dialog
int result = fileChooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) //user chose a file
{
URL mediaURL = null;
Player mediaPlayer = null;
try {
//get the file as URL
mediaURL = fileChooser.getSelectedFile().toURL();
} catch (MalformedURLException malformedURLException) {
System.err.println("Could not create URL for the file");
}
if (mediaURL != null) {
JFrame mediaTest = new JFrame("Media Tester");
mediaTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MediaPanel mediaPanel = new MediaPanel(mediaURL);
mediaTest.add(mediaPanel);
mediaTest.setSize(300, 300);
mediaTest.setVisible(true);
}
}
}
}
L'exception que je reçois est No media player found
- coderanch.com/t/537089/java/java/do-you-include-libraries-JMF
- oui j'ai ajouté jmf.jar ,mediaplayer.jar..est-il autre chose que je dois inclure en dehors de ces deux pots..
- Avez-vous aller à travers l'ensemble de lien? En outre, vous devriez faire
yourExceptionVariable.printStackTrace()
pour obtenir une meilleure idée de ce qui se passe exactement tort. - je viens de débogage ce code et a constaté que le videourl dans mediaURL , le problème est.. il n'est pas en mesure de créer des Joueur
- (@Echilon, veuillez consulter Que faire si une modification à vandaliser le post original est approuvé? Merci.)
Vous devez vous connecter pour publier un commentaire.
Quel type de vidéo que vous voulez jouer? JMF est une jolie vieille bibliothèque et de ne pas être capable de lire la plupart des modernes formats vidéo, seuls quelques anciens (je ne sais même pas lesquels).
En fait, si je suis de droite, de jouer quelque chose de spécifique que vous aurez à écrire/ajouter votre propre vidéo encodeurs en JMF ou, au moins, de télécharger et d'utiliser celles existantes, qui sont généralement obsolètes.
Si vous voulez vraiment avoir quelque chose comme accordable lecteur vidéo qui pourrait jouer n'importe quelle vidéo il y a deux options (à mon avis):
Utilisation vlcj bibliothèque pour intégrer VLC lecteur vidéo dans votre Java application
Utiliser JavaFX media player
Je vous propose des uniquement les deux parce que j'ai creuser à travers des tonnes de bibliothèques il y a quelques temps et il n'y avait rien d'autre, même à proximité de ces deux. Plus la plupart des autres bibliothèques sont obsolètes ainsi que JMF lui-même et ces deux sont d'obtenir des mises à jour fréquentes et sont pris en charge avec beaucoup d'utilisateurs de sorte que ces deux sont le meilleur choix.
Dans le cas où vous n'avez pas l'esprit intégration de Java FX joueur dans votre application qui pourrait être votre choix.
Sur l'autre main vlcj est stable et facilement intégré dans des applications Swing (ce n'est pas comme sa dur avec Java FX, mais vlcj peut-être mieux pour certains cas).
De toute façon, c'est votre appel que choisir.