【问题标题】:How to play mp3 file using Blob-key of blob store of app engine in jsp file with HTML5 audio tag?如何在带有 HTML5 音频标签的 jsp 文件中使用应用引擎的 blob 存储的 Blob-key 播放 mp3 文件?
【发布时间】:2012-06-17 03:44:28
【问题描述】:

我在 App engine blobstore 中上传了我的 4MB mpe 文件。通过检索它的 Blob-key,我尝试使用 HTML 5 音频标签在 jsp 文件中播放它。但它不起作用。代码如下:

<%@page import="com.google.appengine.api.blobstore.BlobKey" %>
<%@page import="com.google.appengine.api.blobstore.BlobstoreService" %>
<%@page import="com.google.appengine.api.blobstore.BlobstoreServiceFactory" %>
<html>
<head>
<meta http-equiv="Content-Type" content="audio/mpeg3; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = new BlobKey(request.getParameter("blob-key"));
%><%=request.getParameter("blob-key")%>

<audio controls="controls">
  <source src="<%=request.getParameter("blob-key")%>" type="audio/mp3" />
</audio>
</body>
</html>

【问题讨论】:

    标签: google-app-engine jsp html5-audio blobstore


    【解决方案1】:

    您的音频标签的src 属性应指向可以下载blob(音频流)的网址。相反,它只保存 blob 键的值(这是一个随机字符串,而不是 Url,因此它不指向任何地方)。

    最好开始阅读如何serve a blob

    基本上,没有一个通用的 blob 服务 url,您只需向它发出请求,它就会为您的 blob 服务。您需要创建一个为 blob 提供服务的 servlet(参见链接中的示例),然后通过 src="/path/to/your/blob/servlet?key=&lt;%=request.getParameter("blob-key")%&gt;" 将 HTML5 音频控件指向它。

    【讨论】:

    • 如果你在上面的代码中有问题,请设置响应头和内容类型。res.setHeader("Content-Disposition", "attachment ;filename =en.mp3");res.setContentType("音频/mpeg3");
    猜你喜欢
    • 2019-07-31
    • 2016-06-08
    • 2015-11-30
    • 2017-01-27
    • 2019-01-19
    • 2016-04-15
    • 2021-01-08
    • 2020-03-26
    • 2018-01-29
    相关资源
    最近更新 更多