2010-06-03 8 views
9

हम एक ऑडियो आधारित वेब आधारित ऐप बनाना चाहते हैं जिसमें कई ध्वनि स्निपेट होंगे। हम इन फ़ाइलों को कैश करना चाहते हैं ताकि प्रदर्शन अच्छा हो और नेटवर्क की गति पर निर्भर न हो। ऑफलाइन मोड के लिए एचटीएमएल 5 कैश ऑडियो कर सकते हैं?क्या एचटीएमएल 5 ऑफलाइन कैश किए गए ऑडियो की पहुंच का समर्थन करेगा?

उत्तर

8

यह निश्चित रूप से मुझे लगता है कि इस काम है, और मैं नहीं किसी भी प्रलेखन यह काम नहीं करना चाहिए (या तो W3C से या एप्पल की तरह विक्रेताओं से) का कहना है कि मिल सकता है चाहिए, लेकिन में संसाधनों के रूप में ऑडियो फ़ाइलें डाल कैश मेनिफेस्ट बस आईपैड & आईफ़ोन पर सफारी के साथ काम नहीं कर रहा है।

ऐप ऑनलाइन होने पर अच्छा लगता है (हालांकि यह उन्हें हर बार नया लोड करता है और उन्हें कैश नहीं करता है) और यह ऑफ़लाइन मोड में होने वाले संसाधनों के बारे में शिकायत नहीं करता है (जो तुरंत होता है आप एक जावास्क्रिप्ट, सीएसएस, एचटीएमएल या छवि संसाधन शामिल करना भूल जाते हैं)।

शिकायत (या लोडिंग) के बजाय; यदि तत्व का नियंत्रण है कि नियंत्रण को उस बॉक्स के साथ प्रतिस्थापित किया गया है जो कहता है "ऑडियो फ़ाइल नहीं चला सकता"। वैकल्पिक रूप से, यदि यह नियंत्रण के बिना तत्व है - यानी जावास्क्रिप्ट के माध्यम से सभी को .play() पर पहुंचाया जाता है - तो यह बस खेलता नहीं है (यह किसी भी त्रुटि का कारण नहीं है, केवल कोई आवाज नहीं है, जावास्क्रिप्ट अन्यथा निष्पादित करना जारी रखता है सामान्य रूप से)।

मैंने इसे बहुत छोटे (< 20k) फ़ाइलों के साथ परीक्षण किया है और नतीजा वही है, इसलिए यह आकार से संबंधित प्रतीत नहीं होता है, केवल एक कंबल प्रतिलिपि से इनकार करता है। मुझे यकीन नहीं है कि क्या आप छवियों के साथ किसी पृष्ठ में संसाधन के रूप में ध्वनि को एन्कोड कर सकते हैं (उदा। बेस 64 में एन्कोड किया गया), लेकिन मैं उस विकल्प की जांच करने जा रहा हूं - मुझे संदेह है कि यह संभव होगा। मैंने डेटा यूआरआई तारों के रूप में ऑडियो डेटा एन्कोड करने का प्रयास किया और यहां तक ​​कि फ्लाई पर ऑडियो उत्पन्न करने का प्रयास किया - दोनों डेस्कटॉप पर सफारी में ठीक काम करते हैं लेकिन आईफोन/आईपैड ओएस पर काम नहीं करते हैं (कम से कम संस्करण 3.x पर - मैंने कोशिश नहीं की है आईओएस 4 पर, लेकिन यह एक हफ्ते तक नहीं होगा, और कुछ महीनों के लिए आईपैड के लिए इसकी उम्मीद नहीं है, भले ही वे इसे ठीक करें)।

मुझे लगता है कि आईओएस में ध्वनि फ़ाइलों को कैश करने से इनकार करने का एक कार्यान्वयन बग या सीमित सीमित कार्यक्षमता है। यह निश्चित रूप से कष्टप्रद और कई उपयोग मामलों के लिए एक शो स्टॉपर है।

मुझे यकीन नहीं है कि अन्य HTML5 क्लाइंट्स के साथ क्या होता है, मुझे जानना होगा (विशेष रूप से एंड्रॉइड पर)। ऑडियो के लिए Google का समर्थन तारकीय नहीं रहा है, इसलिए यह समान सीमाओं से ग्रस्त हो सकता है।

+0

FYI कारण जावास्क्रिप्ट .play() नियंत्रण पर कम काम नहीं करता है क्योंकि तत्व आईफोन/आईपैड के लिए सफारी में अस्वीकृत है (वहां उपयोगकर्ता इनपुट होना चाहिए)। "ऑडियो फ़ाइल नहीं चलाया जा सकता" के लिए, मुझे यह हो रहा है क्योंकि फ़ाइल समर्थित नहीं थी। कुछ कारणों से, यह कुछ एमपी 3 फाइलों के साथ हुआ है। –

+0

@jd धन्यवाद, लेकिन स्पष्टीकरण के लिए, मैं जो देखता हूं वह यह है कि जावास्क्रिप्ट वास्तव में ठीक काम करता है लेकिन केवल अगर आपके पास (तेज़) कनेक्टिविटी है (यदि यह धीमा है तो यह अस्थायी है, क्योंकि यह ध्वनि फ़ाइलों को फिर से लाता रहता है)। कैश मैनिफेस्ट को ऑफ़लाइन एचटीएमएल 5 ऐप्स में ध्वनि फ़ाइलों के लिए सम्मानित नहीं किया जाता है - जावास्क्रिप्ट कॉल कनेक्टिविटी के साथ काम करता है (और सभी ध्वनि फाइलें काम करती हैं)। यह फ़ाइल आकार के बावजूद प्रतीत होता है। –

+1

इस लिखने के लिए धन्यवाद। मैंने अभी इसे स्वयं परीक्षण किया था और यह आपके द्वारा जो कहा गया है उसके अनुरूप है। बिग बमर – airportyh

1

तुम हमेशा एक डिकोडिंग/एन्कोडिंग परत है कि ग्राहक SQLlite डीबी

+1

क्या प्रति ऐप स्टोरेज के लिए 5 मेगापिक्सल सीमा नहीं है? –

0

मैं किसी भी कारण से भी आपको cache manifest में ऑडियो फाइलों को निर्दिष्ट नहीं कर सकते नहीं दिख रहा है करने के लिए बात करती है विकसित कर सके।

+0

लगता है कि समस्याएं हो सकती हैं, यहां देखें: http://stackoverflow.com/questions/1612116/html5-local-storage-of-audio-element-source-is-it- संभावित – UpTheCreek

संबंधित मुद्दे