有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Wicket:从纯字符串呈现HTML5音频

我想使用ApacheWicket呈现HTML5音频。 我试图从纯字符串渲染它。我知道这可能不是最好的方法,所以首先我想问:有没有可能不出错

以下是我正在做的:

爪哇:

String html5AudioStr = "<audio controls><source src=\"test.mp3\" type=\"audio/mpeg\">Your browser does not support the audio element.</audio>";
add(new Label("html5Audio", html5AudioStr).setEscapeModelStrings(false)); 

HTML:

<span wicket:id="html5Audio"></span>

通过这样做,我可以看到音频播放器和<audio>标记被正确呈现。但我得到了一个错误:

java.lang.ClassNotFoundException: test.mp3

并且该文件具有以下URL:

http://localhost:8080/wicket/bookmarkable/test.mp3

而不是:

http://localhost:8080/test.mp3

我能做些什么来修理它吗


共 (2) 个答案

  1. # 1 楼答案

    您使用源的相对路径。这就是为什么浏览器试图解析相对于页面的绝对路径(似乎位于/wicket/bookmarkable/)

    如果要使用/context,只需在“test.mp3”之前添加“/”——它应该是“/test.mp3”

    但如果您要将应用程序装载到其他位置,而不是根上下文“/”,我建议您查看“ContextRelativeResource”

  2. # 2 楼答案

    从Wicket 7开始,媒体标签(音频、视频、曲目、源)现在已成为核心API的一部分

    文档:

    Wicket User Guide 7.x - 16.3 Package resources

    • “媒体标记-支持内容范围的资源引用”

    Javadoc:

    https://ci.apache.org/projects/wicket/apidocs/7.x/index.html-包:

    WicketStuff的“html5”模块中还有一些关于字幕和WebRTC的附加实现