मैं एक ऑडियो/wav निम्नलिखित तरीके से एचटीएमएल 5 सुविधा का उपयोग कर बाहर स्ट्रीम करने के लिए कोशिश कर रहा हूँ:कोड 206 के साथ Grails से स्ट्रीमिंग के लिए ऑडियो फ़ाइल कैसे सेवा करें?
<audio type="audio/wav" src="/sound/10/audio/full" sound-id="10" version="full" controls="">
</audio>
यह क्रोम पर बहुत अच्छी तरह से काम कर रहा है, वास्तव में यह पुन: चलाने या मौजूदा समय विशेषता स्थान बदलने के लिए असंभव है के लिए छोड़कर:
var audioElement = $('audio').get(0)
audioElement.currentTime
> 1.2479820251464844
audioElement.currentTime = 0
audioElement.currentTime
> 1.2479820251464844
मैं एक Grails नियंत्रक से ऑडियो फ़ाइल की सेवा कर रहा हूँ, निम्नलिखित कोड का उपयोग कर:
def audio() {
File file = soundService.getAudio(...)
response.setContentType('audio/wav')
response.setContentLength (file.bytes.length)
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}")
response.outputStream << file.newInputStream() // Performing a binary stream copy
response.status = 206
return false
}
हालांकि यह Grails लगता है मैं
Request URL:http://localhost:8080/sound/10/audio/full
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:identity;q=1, *;q=0
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:JSESSIONID=9395D8FFF34B7455F937190F521AA1BC
Host:localhost:8080
Range:bytes=0-3189
Referer:http://localhost:8080/cms/sound/10/edit
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
Response Headersview source
Content-disposition:attachment;filename=full.wav
Content-Length:3190
Content-Type:audio/wav
Date:Wed, 19 Dec 2012 13:58:44 GMT
Server:Apache-Coyote/1.1
किसी भी विचार क्या गलत हो सकता है: एक HTTP प्रतिसाद 200 के बजाय 206 (आंशिक-सामग्री) वापस देने के रूप में आप क्रोम से निम्नलिखित उत्पादन से देख सकते हैं है?
धन्यवाद, अमित।
अलावा:
को नियंत्रक तर्क को बदलना:
response.status = 206
response.setContentType(version.mime)
response.setContentLength (file.bytes.length)
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}")
response.outputStream << file.newInputStream() // Performing a binary stream copy
किया लौटने HTTP-206 (आंशिक-सामग्री), तथापि Chrome और Firefox दोनों ऑडियो फ़ाइल नहीं खेलेंगे के साथ मदद (उल्लेख फिर क्रोम ...) प्रतिक्रिया की निम्नलिखित जानकारी के साथ खेलते हैं, जब यह एक 200 के साथ फ़ाइल मिला
किया:
Request URL:http://localhost:8080/sound/10/audio/full
Request Headersview source
Accept-Encoding:identity;q=1, *;q=0
Range:bytes=0-
Referer:http://localhost:8080/cms/sound/10/edit
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
शायद 'response.status = 206' _before_ सेट करें, आप फ़ाइल स्ट्रीम करते हैं? –
यह निश्चित रूप से 206 कोड (कर्ल के साथ डंपिंग हेडर) प्राप्त करने में मदद करता है। लेकिन फिर