zoukankan      html  css  js  c++  java
  • 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();
            }
    时,运行的结果是,没有正常播放声音。囧...

  • 相关阅读:
    Path Sum
    【转】Python的神奇方法指南
    【转】浅析Python中的struct模块
    【转】Python之系统交互(subprocess)
    【转】Win10下python3和python2多版本同时安装并解决pip共存问题
    【转】python包导入细节
    【转】python 历险记(四)— python 中常用的 json 操作
    【转】python模块导入细节
    【转】python 内置函数总结(大部分)
    【转】MySQL-Select语句高级应用
  • 原文地址:https://www.cnblogs.com/vivizhyy/p/3394937.html
Copyright © 2011-2022 走看看