如何使用HTML5音频标签在jsp文件中使用app引擎的blob存储的Blob-key播放mp3文件?

时间:2012-06-14 06:01:06

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

我在App引擎blobstore中上传了我的4MB mpe文件。通过检索其Blob键,我尝试使用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>

1 个答案:

答案 0 :(得分:3)

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

最好开始阅读如何serve a blob

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

相关问题