2011-01-18 10 views
14

पर यूआई खोने के बिना आईओएस क्लाइंट पर HTTP लाइव स्ट्रीमिंग का उपयोग करके ऑडियो फ़ाइल स्ट्रीम चलाएं मेरे पास एक HTTP लाइव स्ट्रीमिंग सर्वर सेटअप है जो सेगमेंट एमपी 3 ऑडियो सामग्री (URLlist playm.m3u8 अनुक्रमणिका फ़ाइल) परोसता है। मुझे किसी भी मानक ऐप्पल कंट्रोल/यूआई का उपयोग करके इस ऑडियो स्ट्रीम के बिना आईओएस क्लाइंट एप्लिकेशन बनाने की आवश्यकता है। इसे पृष्ठभूमि में स्ट्रीम खेलना चाहिए और मैं नियंत्रण प्रदान करने के लिए अपने स्वयं के कस्टम यूआई का उपयोग करना चाहता हूं।त्वरित समय

चूंकि सामग्री पूरी तरह से ऑडियो है, इसलिए मैं UIMoviePlayerController क्लास का उपयोग नहीं करना चाहता क्योंकि यह यूआई को लेता है। मैंने AVAudioPlayer का उपयोग करने का प्रयास किया है, हालांकि यह नेटवर्क स्ट्रीम के लिए नहीं है, जो असुरक्षित रूप से एक त्रुटि कोड "-43" के साथ प्लेबैक करने में विफल रहता है: NSOSStatusErrorDomain।

मैंने 1 पिक्सेल ऊंचाई और चौड़ाई के साथ UIWebView बनाने और सर्वर पर playlist.m3u8 फ़ाइल को इंगित करने का भी प्रयास किया है। यह काम करता है लेकिन दुर्भाग्यवश मैं अभी भी यूआई खो देता हूं क्योंकि UIWebView बस क्विकटाइम प्लेयर पर वापस खेलने का काम प्रस्तुत करता है जो आईओएस 3.xx उपकरणों के लिए पूर्ण स्क्रीन के साथ मेरे ऐप के भीतर लॉन्च करता है।

असल में, यह मुझे लगता है कि एप्पल लेने वाली HTTP लाइव स्ट्रीमिंग ऑडियो धाराओं के लिए किसी भी ग्राहक एपीआई प्रदान नहीं की है और डेवलपर्स QuickTime खिलाड़ी जो स्क्रीन usurping क्यूटी लोगो के साथ धारा नाटकों के लिए यूआई छोड़ने के लिए मजबूर कर रहे हैं। उह ...

मुझे यह जानना अच्छा लगेगा कि किसी के पास उपरोक्त के साथ मेरी सहायता करने के लिए सुझाव हैं या नहीं। अन्यथा, मेरी योजना बी HTTP लाइव स्ट्रीमिंग को त्यागना और प्रसिद्ध Matt Gallagher क्लासिक स्ट्रीमिंग कार्यान्वयन का उपयोग करना है। हालांकि, मैं Apples guidelines के बारे में थोड़ा चिंतित हूं जो स्पष्ट रूप से सुझाव दे रहे हैं कि उन ऐप्स के लिए जिन्हें सेलुलर नेटवर्क (जो मेरा ऐप है) पर बड़ी मात्रा में ऑडियो या वीडियो सामग्री भेजने की अपेक्षा की जाती है, को HTTP लाइव स्ट्रीमिंग का उपयोग करने की आवश्यकता होती है। क्या इसका मतलब यह है कि मेरी योजना बी कार्यान्वयन ऐप्पल द्वारा अस्वीकार करने के लिए प्रवण है? इस दिशानिर्देश को रोकने के किसी भी तरीके?

उत्तर

5

मैंने अपने ऐप्स में से एक में मैट गैलाघर द्वारा ऑडियो स्ट्रीमर का उपयोग किया। यह एक इंटरनेट रेडियो ऐप है जो पेंडोरा और लास्टएफएम की तरह है। और हाँ यह ऐप्पल द्वारा स्वीकार किया गया था और तब से ऐप स्टोर में रहा है।

तो मेरी राय में, आपकी योजना बी वास्तव में जोखिम भरा नहीं है। :-)

+0

जानकारी के लिए धन्यवाद। क्या आपने 2010-फरवरी-05 से पहले ऐप सबमिट किया था? ऐप्पल के दिशानिर्देश दस्तावेज़ संशोधन इतिहास को देखते हुए, जब उन्होंने उच्च बी/डब्ल्यू मीडिया स्ट्रीमिंग के लिए HTTP लाइव स्ट्रीमिंग का उपयोग करने वाले ऐप्स के बारे में जनादेश जारी किया था। मुझे लगता है कि उन्होंने उस गाइडलाइन को सार्वजनिक रूप से घोषित करने के बाद स्टोर करने के लिए सबमिट किए गए ऐप्स के लिए केवल अपनी समीक्षा नीति कठिनाई की हो सकती है। – bhavinb

+0

हमम .. मैंने सितंबर 2010 को प्रस्तुत किया, और अगले अक्टूबर में अनुमोदित हो गया। –

13

http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/Reference/Reference.html

डॉक्स कहते हैं:

प्लेबैक फिल्म खिलाड़ी के स्वामित्व वाले एक दृश्य में होता है और जगह या तो फुलस्क्रीन या इनलाइन लेता है।

आईओएस 3.1 और इससे पहले, इस कक्षा ने एक पूर्ण स्क्रीन मूवी प्लेयर लागू किया।

ऐप्पल के नमूना धाराओं का उपयोग करके एक त्वरित परीक्षण साबित करता है कि आप क्या करना चाहते हैं।

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8"]]; 
player.movieSourceType = MPMovieSourceTypeStreaming; 
player.view.hidden = YES; 
[self.view addSubview:player.view]; 
[player play]; 
+1

प्रश्न का उल्लेख "... जो आईओएस 3.xx उपकरणों के लिए पूर्ण स्क्रीन के साथ मेरे ऐप के भीतर लॉन्च हुआ"। मुझे आकार बदलने योग्य दृश्य संभावना और आईफोन 4.0 और बाद में इसे छिपाने की क्षमता के बारे में पता है (क्योंकि आईओएस 3.2 आईओएस 3.1.x के बाद ही आईपैड था, आईफोन के लिए सीधे आईओएस 4.0 है)। एपीआई 'player.view.hidden = हाँ;' आईओएस 3.2 में केवल संभव है और बाद में आईओएस 4.0 और उसके बाद वाले आईफोन के लिए इसका मतलब है। इसलिए यह एक व्यवहार्य विकल्प नहीं है क्योंकि मैं अपने ऐप – bhavinb

+2

गोटो में आईओएस 3.एक्स और ऊपर आईफोन का समर्थन करना चाहता हूं। क्षमा करें मुझे प्रश्न में आईओएस आवश्यकता याद आई। हालांकि, आप गंभीरता से विचार करना चाहेंगे कि आप 3.x पर चलने वाले उपकरणों में कितना प्रयास करना चाहते हैं। मैंने एक ऐप बनाने में मदद की जिसमें आधे मिलियन से अधिक डाउनलोड हैं और 9 3% उपयोगकर्ता 4.0 या उच्चतर चल रहे हैं। यह लिंक भी देखें: http://www.quora.com/What-proportion-of-all-iPhone-owners-use-iOS4-*-today – SteveB

+0

आपको उस लिंक को कॉपी और पेस्ट करना होगा क्योंकि तारांकन है इसे गड़बड़ाना क्षमा करें मैं इसे ठीक से लिंक करने के लिए नहीं मिल सका। – SteveB

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