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
我能做些什么来修理它吗
# 1 楼答案
您使用源的相对路径。这就是为什么浏览器试图解析相对于页面的绝对路径(似乎位于/wicket/bookmarkable/)
如果要使用/context,只需在“test.mp3”之前添加“/”——它应该是“/test.mp3”
但如果您要将应用程序装载到其他位置,而不是根上下文“/”,我建议您查看“ContextRelativeResource”
# 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的附加实现