0

このコードを使用してjmfを使用してaviファイルを実行していますが、「メディアプレーヤーを認識できませんでした」というエラーが表示されます

jmfを使用してすべてのビデオ形式を開く方法

import javax.media.*;
import javax.media.format.*;
import java.io.*;
import java.util.*;
public class Test{
public static void main(String a[]) throws Exception{
    CaptureDeviceInfo di = null;
    Player p = null;
    Vector deviceList = CaptureDeviceManager.getDeviceList(new AudioFormat("linear", 44100, 16, 2));

    if (deviceList.size() > 0){
            di = (CaptureDeviceInfo)deviceList.firstElement();
            System.out.println((di.getLocator()).toExternalForm());
    }else{
            System.out.println("Exiting");
            System.exit(-1);
    }

    try{
            p = Manager.createPlayer(di.getLocator());
    }catch (IOException e){
            System.out.println(e);
    }catch (NoPlayerException e) {
        System.out.println(e);
    }
    System.out.println("Playing Started");
    p.start();
}
}
4

3 に答える 3

0

私の推測では、JMF のインストールに関係があると思われます。Windows を実行していますか? もしそうなら、私はあなたのコードを作り直しました。試してみます。ビデオの再生に必要な dll が正しい場所にあるかどうかがわかります。


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication13;

/**
 *
 * @author dvargo
 */
import javax.media.*;
import javax.media.format.*;
import java.io.*;
import java.util.*;

public class Test {

    final static String windowsDllFolder = "C:\\WINDOWS\\system32\\";

    final static String[] windowsDllList = new String[]{
        "jmacm.dll",
        "jmam.dll",
        "jmcvid.dll",
        "jmdaud.dll",
        "jmdaudc.dll",
        "jmddraw.dll",
        "jmfjawt.dll",
        "jmg723.dll",
        "jmgdi.dll",
        "jmgsm.dll",
        "jmh261.dll",
        "jmh263enc.dll",
        "jmjpeg.dll",
        "jmmci.dll",
        "jmmpa.dll",
        "jmmpegv.dll",
        "jmutil.dll",
        "jmvcm.dll",
        "jmvfw.dll",
        "jmvh263.dll",
        "jsound.dll"};

     /**
     * Verifies that all the dll's that JMF needs are in their correct spot
     * @return True if all dlls are in their correct spot, false otherwise
     */
    public static boolean detectDlls()
    {
        boolean retVal = true;
        String currFile;
        for(String currDll : windowsDllList)
        {
            currFile = windowsDllFolder + currDll;
            if(! new File(currFile).exists())
            {

                retVal = false;
            }
        }
        return retVal;
    }

    public static void main(String a[]) throws Exception {

        boolean JMFsetUp = detectDlls();
        if(JMFsetUp == false)
        {
            System.err.println("Missing DLLS");
        }
        else
        {
            System.out.println("JMF Should be working");
        }


        CaptureDeviceInfo di = null;
        Player p = null;
        Vector deviceList = CaptureDeviceManager.getDeviceList(new AudioFormat("linear", 44100, 16, 2));

        if (deviceList.size() > 0) {
            di = (CaptureDeviceInfo) deviceList.firstElement();
            System.out.println((di.getLocator()).toExternalForm());
        } else {
            System.out.println("Exiting");
            System.exit(-1);
        }

        try {
            p = Manager.createPlayer(di.getLocator());
        } catch (IOException e) {
            System.out.println(e);
        } catch (NoPlayerException e) {
            System.out.println(e);
        }
        System.out.println("Playing Started");
        p.start();
    }
}


于 2011-01-12T18:56:08.353 に答える
0

JMF を正しくインストールし、JMStudio を使用してビデオを表示およびキャプチャできると仮定すると、問題ありません。

CaptureDeviceManager コード スニペットを確認してください。検索の根拠と再生したい AVI ファイルは何ですか?

このコードスニペットを試してください...

public static void main(String[] args) throws Exception {
    File f = new File("C:\\test.avi"); //Substitute the name of the file
    Player p = Manager.createRealizedPlayer(f.toURI().toURL());
    Component c = p.getVisualComponent();
    Frame frame = new Frame("JMF AVI Player");
    frame.setState(Frame.MAXIMIZED_BOTH);
    frame.add(c);
    frame.pack();
    p.start();
    frame.setVisible(true);
}
于 2013-05-31T10:03:21.820 に答える
0

jmf-2_1_1e-alljava JAR ファイルをダウンロードしたら、オペレーティング システムに応じて、zip フォルダーと同じようにファイルを抽出します。使用しているエディターでプロジェクトを開き、右クリックしてビルド パスを選択し、ライブラリを選択し、[JAR/ファイルの追加] を選択し、jmf ファイルを保存した場所に移動し、ファイルをダブルクリックして lib を選択します。瓶の束のように見えるものが表示されます. そのうちの 1 つをクリックして開きます. 目の前の大きなパネルに表示されます. 瓶ごとにこれを行う必要があります.全員, 終わったら OK をクリックしてください. そして「バム」, 準備万端です. 楽しんでください..

于 2014-04-17T23:42:56.797 に答える