【问题标题】:How to play audio that was load from database?如何播放从数据库加载的音频?
【发布时间】:2015-04-29 00:36:42
【问题描述】:

我开发音乐网站。

jsf 页面上,我有 HTML audio 标签
例如,如果音频文件位于WEB-INF 的父级中

WebContent |-- META-INF |-- WEB-INF
-- some.mp3
我只写下一段代码:

<audio ...>
  <source src="#{request.contextPath}/some.mp3" type="audio/mpeg" />
</audio>

添加控件后,我可以播放/暂停此音频。

但是如果我的音频文件没有本地存储在WebContent文件夹中怎么办?
我知道音频文件应该像 BLOB 一样存储在数据库中。
从数据库下载选定的音频后,我应该如何表示它?(String数组,某种Stream?)

在我在网上看到的所有示例中,人们播放本地音频文件。
那么,如何播放存储在数据库中的音频(在 jsf 页面上)???

我希望你明白我想要的。

【问题讨论】:

  • 这个问题已经用不同的方式回答了好几次,但归根结底就是创建一个像这样的 servlet stackoverflow.com/questions/2340406/…stackoverflow.com/questions/1812244/… 你认为哪一个是骗子?
  • @BalusC 我认为第一个在我的情况下会更好..但我有几个关于它是如何工作的问题..首先,我将在@的父级中有一个名为 audio 的静态文件夹987654333@ 和 source 标签看起来像 &lt;source src="#{request.contextPath}/audio/#{myBean.audioTitle}" type="audio/mpeg" /&gt;.... 其次,上面的代码将要求 AudioServlet 从数据库下载音频,将其转换为 Stream 并将其设置为 OutputStream in response???

标签: database jsf audio


【解决方案1】:

您不能直接从数据库中读取文件:您必须将其提供给客户端。

它适用于WebContent 文件夹中的文件,因为这些文件由网络服务器自动提供。

要提供存储在数据库中的文件,您需要编写FileServlet。基本上这个文件 servlet 将:

  • 响应特定请求;
  • 从数据库中检索文件;
  • 将文件内容以流的形式输出给用户。

查看this,了解 FileServlet 的良好开端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多