【发布时间】:2013-07-27 12:09:04
【问题描述】:
我正在尝试使用 jmf 播放视频。在努力工作了几个小时后,从字面上消除了所有错误和异常,在这里我得到了一个空指针异常。在这里,我在查看 NullPointerException 后发现,这应该是由于 Player mediaPlayer 的声明不正确,它没有初始化为任何东西。
直接将它初始化为我稍后给它的值的另一个问题是,我也必须捕获异常,然后它说可能没有声明播放器。
如何声明mediaURL 和Player 以便删除此nullpointerexception 并且我可以播放此视频。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.media.*;
import java.net.URL;
import java.io.*;
import java.net.MalformedURLException;
public class mediaPlayer extends JFrame
{
URL mediaURL;
Player mediaPlayer;
public mediaPlayer()
{
JFrame f = new JFrame("new");
f.setLayout(new BorderLayout());
f.setSize(500,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//file you want to play
try{
String name = "file:///"+new File("output.mp4").getAbsolutePath();
mediaURL = new URL(name);
}catch (MalformedURLException ex){}
//create the media player with the media url
try{
mediaPlayer = Manager.createRealizedPlayer(mediaURL);
}catch(IOException ex){} catch(NoPlayerException ex){} catch(CannotRealizeException ex){}
//get components for video and playback controls
Component video = mediaPlayer.getVisualComponent();
Component controls = mediaPlayer.getControlPanelComponent();
add(video,BorderLayout.CENTER);
add(controls,BorderLayout.SOUTH);
f.setVisible(true);
}
public static void main(String[] args){
new mediaPlayer();
}
}
更新2
javax.media.NotRealizedError: Cannot get visual component on an unrealized playe
r
at com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
at com.sun.media.MediaPlayer.getVisualComponent(MediaPlayer.java:48)
at mediaPlayer.<init>(mediaPlayer.java:29)
at mediaPlayer.main(mediaPlayer.java:38)
Exception in thread "main" javax.media.NotRealizedError: Cannot get visual compo
nent on an unrealized player
at com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
at com.sun.media.MediaPlayer.getVisualComponent(MediaPlayer.java:48)
at mediaPlayer.<init>(mediaPlayer.java:29)
at mediaPlayer.main(mediaPlayer.java:38)
请帮我播放这个视频,删除这个nullpointer exception。非常感谢所有为我的问题付出任何努力的人:)。
【问题讨论】:
-
播放器是一个接口,尝试像这样实例化
Player mediaPlayer = new MediaPlayer();docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/…
标签: java nullpointerexception video-streaming media-player jmf