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呼び出しはまだ"file". 以前使用していたコードと同じように。

于 2012-06-07T10:35:13.913 に答える
0

ここでいくつかの考え:

  1. ローカル ファイル システムに存在するファイルを使用しています。デフォルトでは、アプレットはファイルシステムにアクセスできません。チュートリアルのメソッドの上にコメントがあります。そして、ファイルはhtmlページに関連し、サーバー上に存在する必要があることを明確に述べています。そこのコメントを注意深く読んでください。

  2. この例では、アプレット (提供するクラスはアプレットを拡張します) を使用しています。これは古いアプローチであり、現在は推奨されていません。基本的に、新しい Swing の代わりに AWT を使用します。そのため、代わりに 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 に対して相対的であることを意味します。アプレットも参照してください。

したがって、実行する最も簡単な方法は、HTML ファイルが存在する同じフォルダーに Movie.avi をコピーして使用することです。

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

その後、ファイル名をパラメーターとして指定して構成可能にする必要があります。

于 2012-06-07T10:36:36.007 に答える