检查JMF的版本

简介:
/**
 * Query for the particular version of JMF.
 */
public interface QueryJMF
{
    public static final String NATIVE = "Native Libraries Found\n";
    public static final String NONATIVE = "Native Libraries Not Found\n";

    public abstract String getVersion();
    public abstract String getDetails();
}

/**
 * Check for version JMF 1.0.
 */
public class QueryJMF10 implements QueryJMF
{
    public String getVersion()
    {
        return "1.0.2";
    }
    public String getDetails()
    {
        String string = "";
        try
        {
            Class.forName("com.sun.media.blitter.xlib.Blitter");
            string = new StringBuffer(String.valueOf(string)).append("Solaris Build\n").toString();
        }
        catch (Throwable throwable1)
        {
        }
        try
        {
            Class.forName("com.sun.media.blitter.directx.Blitter");
            string = new StringBuffer(String.valueOf(string)).append("Win32 Build\n").toString();
        }
        catch (Throwable throwable2)
        {
        }
        try
        {
            //JMFSecurity.loadLibrary("jmindeo");
            string = new StringBuffer(String.valueOf(string)).append("Native Libraries Found\n").toString();
        }
        catch (UnsatisfiedLinkError e)
        {
            string = new StringBuffer(String.valueOf(string)).append("Native Libraries Not Found\n").toString();
        }
        return string;
    }

    public QueryJMF10()
    {
    }

    static 
    {
        try
        {
            Class.forName("com.sun.media.renderer.video.VideoRenderer$CC");
        }
        catch (Throwable throwable)
        {
            throw new RuntimeException("Not JMF 1.0.2");
        }
    }
}

/**
 * Check for version JMF 1.1.
 */
public class QueryJMF11 implements QueryJMF
{
    public String getVersion()
    {
        return "1.1";
    }
    public String getDetails()
    {
        String string = "";
        try
        {
            Class.forName("com.sun.media.blitter.xlib.Blitter");
            string = new StringBuffer(String.valueOf(string)).append("Solaris Build\n").toString();
        }
        catch (Throwable throwable1)
        {
        }
        try
        {
            Class.forName("com.sun.media.blitter.directx.Blitter");
            string = new StringBuffer(String.valueOf(string)).append("Win32 Build\n").toString();
        }
        catch (Throwable throwable2)
        {
        }
        try
        {
            //JMFSecurity.loadLibrary("jmindeo");
            string = new StringBuffer(String.valueOf(string)).append("Native Libraries Found\n").toString();
        }
        catch (UnsatisfiedLinkError e)
        {
            string = new StringBuffer(String.valueOf(string)).append("Native Libraries Not Found\n").toString();
        }
        return string;
    }

    public QueryJMF11()
    {
    }
    static 
    {
        try
        {
            Class.forName("com.sun.media.codec.video.h263.H263Decoder");
        }
        catch (Throwable throwable)
        {
            throw new RuntimeException("Not JMF 1.1");
        }
    }
}

import com.sun.media.JMFSecurityManager;
import javax.media.Manager;


/**
 * Check for version JMF 2.0.
 */
public class QueryJMF20 implements QueryJMF
{
    public String getVersion()
    {
        return Manager.getVersion();
    }

    public String getDetails()
    {
        String string = "";
        try
        {
            Class.forName("com.sun.media.renderer.video.XILRenderer");
            string = new StringBuffer(String.valueOf(string)).append("Solaris Build\n").toString();
        }
        catch (Throwable throwable2)
        {
            try
            {
                Class.forName("com.sun.media.protocol.vfw.DataSource");
                string = new StringBuffer(String.valueOf(string)).append("Win32 Build\n").toString();
            }
            catch (Throwable throwable1)
            {
                string = new StringBuffer(String.valueOf(string)).append("All Java Build\n").toString();
            }
        }
        try
        {
            JMFSecurityManager.loadLibrary("jmutil");
            string = new StringBuffer(String.valueOf(string)).append("Native Libraries Found\n").toString();
        }
        catch (UnsatisfiedLinkError e)
        {
            string = new StringBuffer(String.valueOf(string)).append("Native Libraries Not Found\n").toString();
        }
        return string;
    }

    public QueryJMF20()
    {
    }

    static 
    {
        try
        {
            Class.forName("javax.media.Codec");
        }
        catch (Throwable throwable)
        {
            throw new RuntimeException("Not JMF 2.0");
        }
    }
}


本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/09/22/902846.html,如需转载请自行联系原作者

目录
相关文章
|
3月前
自动检查以确保依赖项始终与使用的electron版本相匹配的小技巧
自动检查以确保依赖项始终与使用的electron版本相匹配的小技巧
23 0
|
4月前
|
Windows
5.1 Windows驱动开发:判断驱动加载状态
在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功, 则输出该驱动的详细路径信息。该功能实现的核心函数是`NtQuerySystemInformation`这是一个微软未公开的函数,也没有文档化,不过我们仍然可以通过动态指针的方式调用到它,该函数可以查询到很多系统信息状态,首先需要定义一个指针。
39 0
5.1 Windows驱动开发:判断驱动加载状态
|
10月前
|
Java Maven
Error:java: 无效的源发行版、无效的目标发行版
Error:java: 无效的源发行版、无效的目标发行版
134 0
error MSB8008: 指定的平台工具集()未安装或无效。请确保选择受支持的 PlatformToolset 值
error MSB8008: 指定的平台工具集()未安装或无效。请确保选择受支持的 PlatformToolset 值
92 0
error MSB8008: 指定的平台工具集()未安装或无效。请确保选择受支持的 PlatformToolset 值
|
编解码 网络协议 网络安全
如何处理X-Lite和eyeBeam常见故障及方法
我能够听到对方的声音,但是对方却听不到我的声音 -确认你的声卡工作正常。 -确定声卡没有被设置为静音。 -使用网络分析仪查看是否RTP报文都能够收到。 -检查是否是防火墙或X-Tunnels的问题。
|
网络协议 Unix API
Swoole v4.5.5 版本发布,增加配置项检测
此版本增加了配置项检测功能
153 0
|
Android开发
如何处理JCO版本太旧引起的问题
如何处理JCO版本太旧引起的问题
如何处理JCO版本太旧引起的问题
|
Web App开发 编解码 JavaScript
谷歌 Chrome 94 稳定版正式发布:默认启用空闲检测 API 引争议
谷歌 Chrome 94 稳定版正式发布:默认启用空闲检测 API 引争议
谷歌 Chrome 94 稳定版正式发布:默认启用空闲检测 API 引争议
ice v1.18.3更新 (改进插件情况、修复编码模块错误)
The Progressive Framework Based On React(基于 React 的渐进式研发框架)https://ice.work
|
Java
Archiva 2.2.3 安装运行的时候出现协议版本错误
在 Archiva 安装成功后运行的时候出现协议版本错误: Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version at sun.
1239 0