Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > помощь с видеоплеером


Автор: nerig 25.5.2010, 11:34
Есть видеоплеер созданный с помощью jmf. Можно ли как нибудь сдвинуть ползунок прокрутки времени, чтобы ролик начинался не с начала, а с определенной минуты.

Код

  import javax.swing.*;
  import javax.media.*;
  import java.awt.*;
  import java.awt.event.*;
  import java.net.*;
  import java.io.*;
  
  public class PlayVideo extends JFrame {
  
    Player player;
    Component center;
    Component south;
  
    public PlayVideo() {
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      JButton button = new JButton("Select File");
      ActionListener listener = 
          new ActionListener() {
        public void actionPerformed(
            ActionEvent event) {
          JFileChooser chooser = 
            new JFileChooser(".");
          int status = 
            chooser.showOpenDialog(PlayVideo.this);
          if (status == 
              JFileChooser.APPROVE_OPTION) {
            File file = chooser.getSelectedFile();
            try {
              load(file);
            } catch (Exception e) {
              System.err.println("Try again: " + e);
            }
          }
        }
      };
      button.addActionListener(listener);
      getContentPane().add(button, 
        BorderLayout.NORTH);
      pack();
      show();
    }
  
    public void load(final File file) 
        throws Exception {
      URL url = file.toURL();
      final Container contentPane = 
        getContentPane();
      if (player != null) {
        player.stop();
      }
      player = Manager.createPlayer(url);
      ControllerListener listener = 
          new ControllerAdapter() {
        public void realizeComplete(
            RealizeCompleteEvent event) {
          Component vc = 
            player.getVisualComponent();
          if (vc != null) {
            contentPane.add(vc, 
              BorderLayout.CENTER);
            center = vc;
          } else {
            if (center != null) {
              contentPane.remove(center);
              contentPane.validate();
            }
          }
          Component cpc = 
            player.getControlPanelComponent();
          if (cpc != null) {
            contentPane.add(cpc, 
              BorderLayout.SOUTH);
            south = cpc;
          } else {
            if (south != null) {
              contentPane.remove(south);
              contentPane.validate();
            }
          }
          pack();
          setTitle(file.getName());
        }
      };
      player.addControllerListener(listener);
      player.start();
    }
  
    public static void main(String args[]) {
      PlayVideo pv = new PlayVideo();
      pv.setBounds(30, 30, 100, 100);
    }
  }


Автор: LSD 25.5.2010, 12:54
http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/apidocs/javax/media/Clock.html#setMediaTime%28javax.media.Time%29 должен помочь.

Автор: nerig 26.5.2010, 13:25
А можно поподробнее, а то я поэкспериментировал, и ничего не получилось.

Автор: nerig 28.5.2010, 02:57
ух, разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)