Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从jpanel的按钮单击事件调用时,java media player被锁定_Java_Swing - Fatal编程技术网

从jpanel的按钮单击事件调用时,java media player被锁定

从jpanel的按钮单击事件调用时,java media player被锁定,java,swing,Java,Swing,我创建了一个面板,里面有一个叫做回放的按钮。 当我点击按钮时,jmf播放器正在播放,但处于锁定状态, 我希望所有的事件,如停止,播放应该在jmf播放器工作 class MediaPanel extends JPanel{ public MediaPanel( URL mediaURL ,JDialog media){ setLayout( new BorderLayout() ); Manager.setHint( Manager.PLUGIN_PLAYER

我创建了一个面板,里面有一个叫做回放的按钮。 当我点击按钮时,jmf播放器正在播放,但处于锁定状态, 我希望所有的事件,如停止,播放应该在jmf播放器工作

class MediaPanel  extends JPanel{

    public MediaPanel( URL mediaURL ,JDialog media){

      setLayout( new BorderLayout() );
      Manager.setHint( Manager.PLUGIN_PLAYER , true );

        try
          {
            // create a player to play the media specified in the URL
            Player mediaPlayer = Manager.createRealizedPlayer( mediaURL );

            // get the components for the video and the playback controls
            Component video = mediaPlayer.getVisualComponent();
            Component controls = mediaPlayer.getControlPanelComponent();

            if ( video != null ) 
               add( video, BorderLayout.CENTER ); // add video component

            if ( controls != null ) 
               add( controls, BorderLayout.SOUTH ); // add controls

            mediaPlayer.start(); // start playing the media clip
         } 
       catch ( NoPlayerException noPlayerException ){
           noPlayerException.printStackTrace();
         System.err.println( "No media player found" );
       }
       catch ( CannotRealizeException cannotRealizeException ){
           cannotRealizeException.printStackTrace();
         System.err.println( "Could not realize media player" );
       }
      catch ( IOException iOException ){
          iOException.printStackTrace();
         System.err.println( "Error reading from the source" );
      } 
   } 
}

很可能
mediaPlayer.start()
是一种阻塞方法,这意味着它阻塞了事件调度线程,阻止它更新UI或响应新事件。如果您想轻松更新UI,请尝试将对
mediaPlayer.start()
的调用放在单独的
线程中,或者甚至放在
SwingWorker
中……这是使用JMF播放视频吗?Java FX,VLCJ。。?