0

我正在制作一个必须播放视频文件的 java 小程序。我在网上搜索了一个代码,但它给出了一个错误getParameter

这是代码...

 public void init() {

        //$ System.out.println("Applet.init() is called");
        setLayout(null);
        setBackground(Color.white);
        panel = new Panel();
        panel.setLayout( null );
        add(panel);
        panel.setBounds(0, 0, 320, 240);

        // input file name from html param
        String mediaFile = null;
        // URL for our media file
        MediaLocator mrl = null;
        URL url = null;

        // Get the media filename info.
        // The applet tag should contain the path to the
        // source media file, relative to the html page.

       // Error here: Invalid media file parameter

        if ((mediaFile = getParameter("C:\\Users\\asim\\Documents\\JCreator LE\\MyProjects\\SimplePlayerApplet\\src\\Movie.avi")) == null)
            Fatal("Invalid media file parameter");

        try {
            url = new URL(getDocumentBase(), mediaFile);
            mediaFile = url.toExternalForm();
        } catch (MalformedURLException mue) {
        }

这是整个代码的链接:

http://docs.oracle.com/javase/1.4.2/docs/guide/plugin/developer_guide/SimplePlayerApplet.java.html

4

3 回答 3

1

你是如何“调用”你的小程序的?

似乎您正在尝试将“参数”指定为位于本地文件系统上的东西,但您正在构建一个“小程序”,因此您应该通过 HTML 调用它,然后将“参数”这样传递:

<applet code=SimplePlayerApplet.class width=320 height=300>
<param name="file" value="sun.avi">
</applet>

因此你的getParameter电话应该仍然是 for "file"。就像您之前使用的代码一样。

于 2012-06-07T10:35:13.913 回答
0

这里有几个想法:

  1. 您正在使用驻留在本地文件系统中的文件。默认情况下,Applet 无权访问文件系统。本教程中的方法上方有一条评论。并且它明确指出文件应该与 html 页面相关并且驻留在服务器上。只需仔细阅读那里的评论。

  2. 该示例使用 Applet(他们提供的类扩展了 Applet)——它是一种旧方法,现在已弃用。基本上它所做的是使用 AWT 而不是较新的 Swing。因此,您应该寻找一个使用 JApplet 的示例。

希望这可以帮助。

于 2012-06-07T10:34:56.770 回答
0

您应该将参数放在 HTMLpart 中,这将使小程序独立于内容。您将参数名称与其值混淆了。

<HTML> <BODY>
<APPLET CODE="SimplePlayerApplet.class" WIDTH=320 HEIGHT=240>
 <PARAM NAME="filename" VALUE="C:\\Users\\asim\\Documents\\JCreator LE\\MyProjects\\SimplePlayerApplet\\src\\Movie.avi">

</APPLET>
</BODY> </HTML>


 if ((mediaFile = getParameter("filename")) == null)
    ...

为了访问文件系统,您需要对小程序进行签名。

线路:

 URL(getDocumentBase(), mediaFile);

尝试从 DocumentBase 打开相对的 mediaFile。这意味着相对于嵌入此小程序的文档的 URL。另请参见小程序

因此,让它运行的最简单方法是将您的 Movie.avi 复制到您的 HTML 文件所在的同一文件夹中并使用

URL(getDocumentBase(), "Movie.avi");

之后,您应该通过提供文件名作为参数来使其可配置。

于 2012-06-07T10:36:36.007 回答