Problema com JMF

2 respostas
S

To mechendo com JMF,
e to tentando fazer um programinha super simples, de abrir um video e mostrar no JLabel
a duracao dele. Sabendo a duracao eh um objeto Javax.media.Time, e pra por numa label
tem q ser uma string, o q eu fiz foi: label.setText( (player.getDuration() ).toString() );

bom o resultado disse eh estranho =)

O resultado eh algo do tipo: Javax.Media.Time@1fa6d18
numeros binários?! q viagem eh essa? huhuhuhuh, to achando q o JLabel nao eh o local
correto para mostrar tal dado. Talvez um Component visualComponent, ou sei la…

olha o codigo:

import javax.swing.<em>;

import javax.media.</em>;

import <a href="http://java.io">java.io</a>.<em>;

import java.awt.event.</em>;

import java.awt.*;
public class Duracao extends JFrame {

private Player player;

private File file;

public JLabel duracao;

public Duracao () {

super (" Mostrando a duracao de uma midia" );

Container c = getContentPane();

c.setLayout(new FlowLayout() );
JButton abrir = new JButton(Abrir arquivo);

abrir.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

abrirArquivo();

}

}

);

c.add(abrir);

//Nesse JLabel ser�mostrada a duracao da midia

duracao = new JLabel();

c.add(duracao);
setSize(300,100);

show();

}

public void abrirArquivo() {
JFileChooser fileChooser = new JFileChooser();

fileChooser.setFileSelectionMode( JFileChooser.FILES_ONLY );
int resultado = fileChooser.showOpenDialog(this);

//se Clicar no Cancel…

if (resultado == JFileChooser.CANCEL_OPTION)

file = null; //assim polpa memria

else {

file = fileChooser.getSelectedFile();

try {

player = Manager.createPlayer(file.toURL() );

}

catch (Exception e ) {

JOptionPane.showMessageDialog(this, Arquivo Invalido, Erro, JOptionPane.ERROR_MESSAGE );

}

duracao.setText( (player.getDuration() ).toString() ); //setando o JLabel com a duracao

}

}

public static void main(String args[]) {
Duracao d = new Duracao();

d.addWindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

);

}

}

e eu sei o q eh identaçao sim, mas qnd eu colo aki, some isso heheh :shock:

vlw

2 Respostas

Daniel_Quirino_Olive

Ao invés de usar javax.media.Time.ToString() (como vc está usando quando faz javax.media.Player.getDuration().toString()), use:
javax.media.Time.getSeconds(). O retorno vai ser um primitivo double.
Mais informações:
:arrow: Interface javax.media.Time: http://java.sun.com/products/java-media/jmf/2.1.1/apidocs/javax/media/Time.html
:arrow: Interface javax.media.Duration: http://java.sun.com/products/java-media/jmf/2.1.1/apidocs/javax/media/Duration.html

Daniel_Quirino_Olive

O “estranho” retorno que o método toString() lhe devolve (Javax.Media.Time@1fa6d18) é o endereço de memória onde seu objeto do tipo javax.media.Time está alocado.

Criado 5 de junho de 2003
Ultima resposta 6 de jun. de 2003
Respostas 2
Participantes 2