2012-07-23 32 views
2

我使用response.out从我的应用程序提供mp3文件,它似乎工作,但如果该文件在html5脚本中使用或仅在Web浏览器中播放一个插件,mp3文件第一次播放正确,但如果我尝试倒带并再次播放,它不再有效。从AppEngine提供的mp3文件不会“倒带”

如果我把相同的文件作为静态文件,那么一切工作正常。

这是我从用response.out服务文件的URL(只播放一次,不倒带)

http://traki.eledit.net/media/ps/101_4.mp3

这里是同一个文件的URL充当静态页面(这始终工作)

http://traki.eledit.net/static/test2.mp3

当两个文件都下载它们是相同的。

当我检查这两个文件的HTTP头我也得到几乎相同的结果:

http://www.webconfs.com/http-header-check.php?url=http://traki.eledit.net/media/ps/101_4.mp3&submit=submit

http://www.webconfs.com/http-header-check.php?url=http://traki.eledit.net/static/test2.mp3&submit=submit

人确实有,为什么这两个文件不同的行为的任何想法?我还应该做些什么,以便与response.out一起提供的文件的行为与文件作为静态页面的行为相同?

回答

0

尝试更改标题以匹配静态mp3文件的标头Content-Type

self.response.headers['Content-Type'] = 'audio/mpeg' 
self.respone.out.write(mp3_file) 
1

这很可能是你的浏览器尝试范围请求发送到您的应用程序时,你快退或寻找,你的脚本没有内置处理这个问题。通过检查请求日志,在每个请求中记录您的请求标头,和/或通过使用浏览器的开发工具进行检查来验证这一点。

如果事实证明是这样,您应该检查并按照浏览器的字节范围标题并仅返回文件的请求部分。