从 Google App Engine 流式传输音频
Posted
技术标签:
【中文标题】从 Google App Engine 流式传输音频【英文标题】:Streaming audio from Google App Engine 【发布时间】:2012-05-15 18:26:25 【问题描述】:一般来说,是否可以在 AppEngine 上从 BlobStore
流式传输音频文件?
如果是,那么从直接 url 流式传输 .mp3 文件怎么样?
【问题讨论】:
【参考方案1】:是的!! 这是我的实现:
public class Serve extends HttpServlet
private static final long serialVersionUID = 5603629129606331547L;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException
BlobKey blobKey = new BlobKey(req.getParameter("blob-key"));
BlobstoreServiceFactory.getBlobstoreService().serve(blobKey, res);
.. 这是 web.xml:
<servlet>
<servlet-name>Serve</servlet-name>
<servlet-class><my-package>.Serve</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Serve</servlet-name>
<url-pattern>/serve</url-pattern>
</servlet-mapping>
请注意,“直接 url”(我认为您的意思是 getServingUrl)仅适用于图像: https://developers.google.com/appengine/docs/java/images/overview#Transforming_Images_from_the_Blobstore
【讨论】:
除非这不是流式传输。这只是一个文件下载。 嗯.. @PeterKnego 你是对的:这里是流媒体的正确类developers.google.com/appengine/docs/java/javadoc/com/google/… 抱歉,没有。流式传输意味着您根据需要交付数据,例如当用户查看/收听媒体时。下载意味着您尽可能快地发送数据并且客户端缓存它。 App Engine 将请求限制为 30 秒,因此您无法进行流式传输。 @PeterKnego 流式传输和下载之间的唯一区别是数据的消费方式;客户可以通过仅在需要时读取数据来控制它。 App Engine 的执行限制仅适用于代码执行时间,而不适用于上传或下载数据所花费的时间,因此此解决方案运行良好。 @Nick - 实际上不同之处在于数据的提供方式。在真正的流媒体(RTSP,RTMP)中,客户端将通知服务器流消耗,服务器将相应地发送更多/更少的数据。因此,连接始终处于打开状态,并且服务器上需要有代码作用于客户端信号。以上是关于从 Google App Engine 流式传输音频的主要内容,如果未能解决你的问题,请参考以下文章
您可以将视频从Android流式传输到Google云端硬盘吗? [关闭]
使用 HTML5 视频标签从 Google Drive 流式传输视频
将数据从 Google 表格流式传输到 BigQuery 以在 Tableau 中进行可视化