2013-05-17 9 views
7

Google ने Google संगीत के लिए ऑल एक्सेस जारी करने के एक दिन बाद ही स्ट्रीम किए गए (स्वामित्व वाले) मीडिया के लिए JSON प्रतिक्रिया में यूआरएल सरणी में ऐसे यूआरएल हैं जो स्ट्रीम नहीं करते हैं। क्या किसी ने इसमें देखा है? वे एक सेकंड के अंश के लिए खेलते हैं और फिर समाप्त होते हैं।एंड्रॉइड Google म्यूजिक एपीआई - सभी एक्सेस

उत्तर

2

मैं इस पर ध्यान देने और किया गया है हालांकि मैं नहीं मिला है एक समाधान मेरा मानना ​​है कि यह निर्धारित करने के लिए क्या किया जाना चाहिए करने में सहायक हो सकता है:

सूचना है कि यूआरएल एक सीमा परम है, लेकिन है कि नोटिस पहले एक तरह हो सकता है:

range=0-39706 

लेकिन अगले एक होगा:

range=37615-119118 

कौन सा अजीब लगता है कि अगले खंड जहां पूर्व की तुलना में कम एक मूल्य पर शुरू होगा विचित्र खंड समाप्त हो गया। मेरा उच्च स्तर अनुमान यह है कि हमें इस श्रेणी का उपयोग करके फ़ाइल में लिखना होगा और बाइट्स को उचित रूप से जोड़ना होगा ताकि वे क्रम में हों।

लेकिन यह मेरा अनुमान है, ऐसा करने का प्रयास नहीं किया है, लेकिन मैं इस पर काम कर रहा हूं।

अद्यतन

मैं सफलतापूर्वक ऊपर पूरा किया है, लेकिन C++ तो एंड्रॉयड नहीं क्यूटी ढांचे का उपयोग कर। लेकिन मेरे कार्यान्वयन में कुछ हद तक एक मुद्दा प्रतीत होता है क्योंकि प्रत्येक सेगमेंट में एक अजीब स्क्वाक शोर होता है, इसलिए मुझे बाइट स्थिति को थोड़ा समायोजित करने की आवश्यकता हो सकती है, लेकिन अब मैं पूरे गीत से गुजर सकता हूं।

वास्तव में सुनिश्चित नहीं हैं कि यह कैसे Android के लिए अनुवाद होगा लेकिन मुझे लगता है कि जैसे कुछ होगा: बस प्रत्येक खंड के लिए प्रारंभिक बाइट पार्स आउट कर के माध्यम से

File file = new File("tempFile"); 
file.open(WRITE_ONLY); 
file.write(startingByte, data); 

और तुम पाश के रूप में।

संपादित

बाहर मिला मेरी समस्या यह है कि मैं प्रत्येक खंड के बाद फ़ाइल को बंद करने गया था। अगर मैं फ़ाइल को तब तक खुला छोड़ देता हूं जब तक कि मैं सभी सेगमेंट लिखना समाप्त नहीं करता हूं तो गीत पूरी तरह से खेलता है।

+0

आपने ओवरलैपिंग बाइट श्रेणियों को कैसे संभाला? क्या आपने प्रत्येक क्रमिक फ़ाइल के लिए बाइट स्थिति को रिवाइंड किया था? मेरे पहले प्रयास में, मैंने आपके द्वारा नोट किए गए फ़ाइल आउटपुट स्ट्रीम को छोड़ दिया है, लेकिन मैंने ओवरलैप को अनदेखा करके, सभी बाइट्स को अनुक्रमिक रूप से लिखा है और मुझे वह स्क्वाक मिल रहा है। – Baron

+0

यह पता चला है ... हाँ, आपको अंतिम आउटपुट फ़ाइल में बाइट स्थिति को रिवाइंड करना होगा क्योंकि आप प्रत्येक भाग के लिए यूआरएल में दिखाए गए रेंज स्टार्ट वैल्यू का उपयोग करके प्रत्येक भाग से डेटा जोड़ते हैं। – Baron

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