Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wanderson Regis Silva

JMF Java Media Framework

Recommended Posts

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();
            }
        }
    }
}
Eu tentai basear o código em um tutorial que eu achei na internet mas perdi o link, e agora há pouco refiz uma parte usando o livro do deitel (6ª edição) como guia, mas nem assim.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo? Ninguém aqui se atreveu a mecher com JMF?

 

Por que eu queria ainda perguntar sobre como adicionar plugins ao JMF, pois em achei o fobs4jmf que aumenta considerávelmente os formatos compatíveis a qualidade dos que o JMF já aceita.

 

Os exemplos de ambos funcionam, mas eu não consigo uma aplicação que realmente funcione. Tentei até usar o eclipse, mas nem com ele eu consegui, deu exatamente o mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wanderson, eu queria saber se você poderia me ajudar em um problema.

Eu tenho um laptop com windows 7 64bits, e estou instalando o JMF2.1.1e. A instalação é realizada com sucesso, mas o jmfstudio não executa.

O jdk instalado é o 1.6.0.25 64 bits.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos.

 

Pelo que eu sei, o Java Media Framework já está obsoleto e por isso foi descontinuado, por esta razão não existe o mesmo para versão do Win 64, contudo já existe uma tecnologia para captura, exibição de Audio e Vídeo para Java e chama-se DirectShow Java e é só dar uma olhada no link abaixo:

 

http://www.humatic.de/htools/dsj.htm.

 

Além de voce poder baixar os drivers *.jar gratuitamente, existem vários exemplos de como construir a sua aplicação com esta biblioteca de mídia.

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.