我是新來的Struts 2。現在在Web項目中開發一個畫廊頁面。因爲我必須在沒有頁面加載的情況下彈出圖片/音頻/視頻文件。我成功地在圖像&視頻文件工作正常,但沒有音頻文件。我的支柱行動如下。來自java的音頻流不工作,但視頻正常工作
<action name="download" class="com.mkyong.common.action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">fileInputStream</param>
<param name="bufferSize">256</param>
</result>
</action>
我的類文件是
try {
fileInputStream = new FileInputStream(new File("E:\\ESS_GALLERY\\2451252452\\Gallery\\Audios\\audio_2.wav"));
} catch (Exception e) {
e.printStackTrace();
}
和JSP(HTML)代碼
<object id='tempAud1' name="emQTPlayer" height="45px" width="120px"
style="behavior: url(#BinaryBehaviorID)"
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B">
<param name="autoplay" value="false" />
<param name="src"
value="<s:property value="mediaAud[0].fileLocation"/>" />
<param name="controller" value="true" />
<param name="type" value="video/quicktime" />
<param name="align" value="bottom" />
<param name="border" value="0" />
<%--<param name="wmode" value="transparent">--%>
<param name="showcontrols" value="true">
<embed id='tempAud2' name="emQTPlayer" type="video/quicktime"
autoplay="false" height="45px" width="120px" align="top" border="0"
controller="true" postdomevents="true"
pluginspage="http://www.apple.com/quicktime/download/"
showcontrols="true" src='' />
</object>
。 因爲我會在onclick事件中設置src ...
當你在輸入在瀏覽器中的操作是否會返回音頻文件?那可以將它保存到磁盤並播放它嗎?如果您不能解決問題,那麼瀏覽器/標籤無法處理內容類型,或者標籤的參數不正確。 – Quaternion
當我在瀏覽器中直接下載download.action時,它會要求將其下載爲download.action(因爲我沒有提供文件名附件參數),然後我打開任何媒體播放器,它工作正常..有沒有問題或任何特別的我必須爲音頻文件做?我見過一些頁面,Java不會支持這樣的許多音頻文件格式? – Ram
那麼這些數據顯然是給你的......問題出在瀏覽器上,但服務器可能沒有足夠的幫助。該標籤清楚地說明了媒體類型,但是誰知道它仍然需要一個準確的MIME類型,因此請檢查服務器是否提供它也嘗試使用從本地源下載的文件「download.action」,並查看瀏覽器是否需要更多合理的文件擴展名我敢打賭,不同的瀏覽器在這個問題上會或多或少地靈活一些。 – Quaternion