database - 如何播放从数据库加载的音频?

标签 database jsf audio

我开发音乐网站。

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页面上)???

我希望你明白我想要的。

最佳答案

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

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

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

  • 响应特定请求;
  • 从数据库中检索文件;
  • 通过流向用户输出文件内容。

  • 看一看this,这是FileServlet的良好开端。

    关于database - 如何播放从数据库加载的音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29923936/

    相关文章:

    mysql - 需要数据库两个月前每小时的数据

    database - 字段命名问题

    jsf - 如何制作a4j :commandLink execute action and show modalpanel?

    audio - 使用语音框架iOS从音频文件生成字幕

    python - Pygame:使用多个 channel 设置绝对音量

    java - 语音识别器声音

    database - 从 SQL 中检索 VB 中的数据

    php - 如何在 php 上从数据库创建类别路径

    jsf - 为什么 FacesServlet 不能有/*. 的 url-pattern?

    jsf - 如何在 JSF 中编写下拉框?