Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos,
seguinte: preciso reproduzir vídeos em um aplicativo java, já percebi que o único meio parece ser o jmf (que eu acho um bocado limitado e ultrapassado).
O problema: não consigo reproduzir nada, dá sempre o seguinte erro:
Unable to handle format: XVID, 1280x720, FrameRate=23.9, Length=5529600 0 extra bytes
Unable to handle format: unknown, 48000.0 Hz, 0-bit, 6-channel, Unsigned, 56000.0 frame rate, FrameSize=8 bits
Failed to realize: com.sun.media.PlaybackEngine@53dafbaf
Error: Unable to realize com.sun.media.PlaybackEngine@53dafbaf
javax.media.CannotRealizeException
at javax.media.Manager.blockingCall(Manager.java:2005)
at javax.media.Manager.createRealizedPlayer(Manager.java:528)
at jmedia.JMedia.<init>(JMedia.java:21)
at jmedia.JMedia.main(JMedia.java:41)Este vídeo é apenas um vídeo pra testar, é um filme em avi. Eu sei que o JMF consegue reproduzir pois eu consegui vê-lo a partir do JMStudio. E aliás é o único vídeo que eu consegui (tentei arquivos .3gp, .3g2, .mov e .m2v, mas só deu o arquivo .avi).
O meu sistema é Windows 7 64 bits, JDK 64 bits e NetBeans 6.9. No NetBeans, o que eu fiz foi adicionar às bibliotecas o jar jmf.jar, então as classes do pacote foram reconhecidas.
O código do teste foi o seguinte:
package jmedia;
import java.awt.Component;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class JMedia extends JFrame {
public JMedia(URL url) {
super("JMedia");
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
try {
Player player = Manager.createRealizedPlayer(url);
Component c = player.getVisualComponent();
if(c != null)
add(c);
player.start();
} catch (IOException ex) {
ex.printStackTrace();
} catch (NoPlayerException ex) {
ex.printStackTrace();
} catch (CannotRealizeException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
JFileChooser f = new JFileChooser();
if(f.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
try {
JFrame fm = new JMedia(f.getSelectedFile().toURI().toURL());
fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fm.setSize(570, 320);
fm.setLocationRelativeTo(null);
fm.setVisible(true);
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
}Carregando comentários...