2014-01-18 111 views
0

我想使用Apache Wicket呈現HTML5音頻。 我想從純字符串中呈現它。我知道這可能不是最好的方法,所以我首先想問:甚至有可能沒有出現錯誤?Wicket:從純文本字符串呈現HTML5音頻

下面是我在做什麼:

JAVA:

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 

和文件有這個網址:中

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

代替:

http://localhost:8080/test.mp3 

有什麼我可以做些什麼來解決這個問題?

回答

2

您使用相對路徑來源。這就是爲什麼瀏覽器試圖解析相對於您的頁面的絕對路徑(似乎它位於/ wicket/bookmarkable /中)。

如果你打算使用/ context,你可以簡單地在「test.mp3」之前加上「/」 - 它應該是「/test.mp3」。

但是,如果您打算將應用程序安裝到其他位置,而不是根環境「/」,我建議查看「ContextRelativeResource」。

+0

添加 「/」 的作品,謝謝 – justasd

1

從Wicket 7媒體標籤(音頻,視頻,音軌,源代碼)到現在成爲核心API的一部分。

文檔:

Wicket User Guide 7.x - 16.3 Package resources

  • 「媒體標籤 - 與內容範圍的支持資源引用」

的Javadoc: - 帕

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

也有WicketStuff約字幕和的WebRTC的 「HTML5」 模塊中的一些另外的實現。