gpt4 book ai didi

java - 如何删除空指针异常

转载 作者:行者123 更新时间:2023-12-01 04:31:46 26 4
gpt4 key购买 nike

我正在尝试使用 jmf 播放视频。经过几个小时的努力消除所有错误和异常后,我在这里得到了一个空指针异常。在这里,我在查看 NullPointerException 后发现,这应该是由于 Player mediaPlayer 的声明不正确,它没有初始化为任何内容。

直接将其初始化为我稍后给它的值的另一个问题是,我也必须捕获异常,然后它说玩家可能不会被声明。

如何声明 mediaURLPlayer 以便删除此 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)

请帮助我播放此视频,删除此空指针异常。非常感谢所有为我的问题付出努力的人:)。

最佳答案

将您的代码更改为此,

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
{
public mediaPlayer()
{
JFrame f = new JFrame("Video Demo");
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();
URL mediaURL = new URL(name);
Player mediaPlayer = Manager.createRealizedPlayer(mediaURL);
//get components for video and playback controls
Component video = mediaPlayer.getVisualComponent();
Component controls = mediaPlayer.getControlPanelComponent();
f.add(video,BorderLayout.CENTER);
f.add(controls,BorderLayout.SOUTH);
} catch (Exception e) { e.printStackTrace(); }
f.setVisible(true);

}
public static void main(String[] args){
new mediaPlayer();
}
}

致谢 - 安德鲁·汤普森。

关于java - 如何删除空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17897647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com