• Applet 编程中多媒体文件放置的位置


     最近看 Java 中的 Applet ,又碰见了令 vivizhyy 头痛的 URL 路径问题。

    首先看下 URL 和 URI 。
        URL 和 URI 的概念是不同的 ,URL 是 URI 的特例(此前 vivizhyy 一直以为的是反过来的情况,囧)。URL可以打开资源,而URI则不行。URL和URI对象可以互相转换,使用各自的toURI(),toURL()方法即可。(参见 http://dev.yesky.com/85/3001085.shtml)
    然后看下这两天 vivizhyy 碰见的具体问题:当需要调用文件时,使用 Java applet 中的方法:getDocumentBase(),这个返回的值到底是什么? API 中给的解释是:Gets the URL of the document in which this applet is embedded.(用的被动语态...也就应该是嵌套着我们写的 applet 的那个网页文件)。在 netBeans IDE 6.0 中,当运行编写的 Applet 时,会自动在 build 路径下生成相应的网页文件(*.html)。那么在调用 getDocumentBase() 这个方法时,返回的就是自动生成 .html 格式文件的 URL .那么相应的多媒体文件也应当与生成的 .html 文件放在同一目录下,这样就可以正常的在页面中使用多媒体文件了。

    可是当我把多媒体文件和 .html 文件放在不同的目录下,那又该如何找到多媒体文件的 URL ? 比如我的 AppletTest.html 的路径为 build/AppletTest.html , 而音频文件的目录为 build/classes/audio.au 时,想要调用 play( URL url , String name ) 方法,如何获取 URL 的 参数值?
    ① 把多媒体文件剪切到放置 .html 文件的目录下。-_-|||,这是最简单的解决方法,但是这样文件的目录层次会很乱。
    ② 写如下的代码:
     public void start() {
            String strURL = getDocumentBase().toString() + "classes";
            try {
                URL auURL = new URL(strURL);
                play(auURL, "spacemusic.au");
            } catch (Exception e) {
                e.printStackTrace();
            }
    时,运行的结果是,没有正常播放声音。囧...

  • 相关阅读:
    右键点击任务栏程序没有锁定菜单
    CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件
    通道闸机
    Activex、OLE、COM、OCX、DLL之间区别、联系[转]
    C#图像显示实现拖拽、锚点缩放功能【转】
    顶级人生规划[转]
    jqGrid选择列控件向右拖拽超出边界处理
    强力推荐!那些你不能错过的 GitHub 插件和工具
    GitHub 托管的10款免费开源 windows 工具
    实现阶层跨越的捷径
  • 原文地址:https://www.cnblogs.com/vivizhyy/p/3394937.html
Copyright © 2020-2023  润新知