繁体   English   中英

JavaFX Mediaplayer在Eclipse中播放视频,但不在可运行的jar中播放

[英]JavaFX mediaplayer playing video in eclipse but not in runnable jar

我几天来一直遇到这个问题,无法找到解决方案。 问题是当我在eclipse中运行程序时,我的介绍视频会显示并播放,但是当我将其导出到可运行的jar中时,视频不会加载,只有jframe可以加载。

我正在使用带有e(fx)clipse的eclipse。

在我的主类中,我只是创建一个Jframe并将MediaPanel对象添加到Jframe中:

mediaPanel = new MediaPanel( "/videos/Composite2.avi" );
        frame.getContentPane().add(mediaPanel);

这是我的MediaPanel类别

import java.awt.BorderLayout;
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.JPanel;

    public class MediaPanel extends JPanel
    {

        Player mediaPlayer;
         public MediaPanel( String mediaURL ) throws MalformedURLException
         {

            URL mediaURL1 = this.getClass().getResource(mediaURL);
            System.out.println(mediaURL1);
             setLayout( new BorderLayout() ); // use a BorderLayout

             // Use lightweight components for Swing compatibility
     Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );

             try
             {
             // create a player to play the media specified in the URL
                  mediaPlayer = Manager.createRealizedPlayer( mediaURL1 );
                 // 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

             } // end try
             catch ( NoPlayerException noPlayerException )
             {
                 System.err.println( "No media player found" );
             } // end catch
             catch ( CannotRealizeException cannotRealizeException )
     {
                 System.err.println( "Could not realize media player" );
             } // end catch
             catch ( IOException iOException )
       {
             System.err.println( "Error reading from the source" );
             } // end catch
          } // end MediaPanel constructor   

         public void stop(){
             mediaPlayer.stop();
         }
    } // end class MediaPanel

您是否已安装这些库。

狄拉克库,1.0.2-9.fc18.i686.rpm

libavcodec52-0.7.15-32.fc18.i686.rpm

libavformat52-0.7.15-32.fc18.i686.rpm

libavutil50-0.7.15-32.fc18.i686.rpm

libxavs1-0.1.51-2.fc18.i686.rpm

安装这些文件后,javafx会像音乐一样播放音乐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM