19

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

मुझे एहसास है कि इन वीडियो को आईफोन के लिए उचित क्विकटाइम प्रारूप में प्राप्त करना है।

तब मुझे क्लाइंट को यह पता लगाने में मदद करने की ज़रूरत है कि इन फ़ाइलों को कैसे या कहां होस्ट किया जाए। यदि यह मुश्किल है तो मुझे लगता है कि उन्हें YouTube पर होस्ट किया जा सकता है।

हालांकि, मेरी मुख्य चिंता वीडियो स्ट्रीम करने के लिए कौन सी दृष्टिकोण है। स्ट्रीम के यूआरएल के साथ UIWebView लॉन्च करने के विरुद्ध MPMoviePlayerController के पेशेवरों और विपक्ष क्या हैं? क्या कोई अंतर है? उनमें से एक कम या ज्यादा क्षमा कर रहा है? उनमें से एक बेहतर उपयोगकर्ता अनुभव है? कोई भी गॉचास मैं भागने की उम्मीद कर सकता हूं?

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

उत्तर

9

UIWebView वास्तव में वीडियो नहीं चला सकता है। UIWebview के साथ एक यूट्यूब पेज पर नेविगेट करने से बस आईफोन की यूट्यूब ऐप लॉन्च होगी। वीडियो चलाने के बाद यह एक निश्चित तरीका आपके ऐप पर नियंत्रण वापस कर देगा। यहां देखें: http://iphoneincubator.com/blog/tag/uiwebview

मैं MPMoviePlayer नियंत्रक का उपयोग करने की अनुशंसा करता हूं, जब तक कि आप केवल सरल स्ट्रीमिंग कर रहे हों। यहाँ पाने के लिए कुछ नमूना कोड आप शुरू कर दिया है:

NSString *url = @"http://www.example.com/path/to/movie.mp4"; 
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] 
             initWithContentURL:[NSURL URLWithString:url]]; 
[moviePlayer play]; 
+0

ठीक है। तो मेरी असली पसंद YouTube ऐप और MPMoviePlayerController के बीच है। धन्यवाद - बाद की पसंद वास्तव में बहुत आसान लगती है। मैं शायद आगे बढ़ूंगा और दोनों तरीकों से कोशिश करूंगा। – Nosredna

+0

दान - क्या आप अपना उत्तर संपादित कर सकते हैं ताकि दो कोड लाइन दोनों को "कोड" के रूप में स्वरूपित किया जा सके। फ़ायरफ़ॉक्स 3.5 पर कम से कम मेरे लिए एनएसएसटींग लाइन को स्वरूपित कोड के रूप में देखते हैं लेकिन MPMoviePlayerController लाइन नहीं है। अगले व्यक्ति के लिए इसे बेहतर बनाने के लिए बस एक सुझाव। –

25

संपादित करें: इस जवाब में मेरी मूल उदाहरण CGRectZero के एक फ्रेम के साथ वेब दृश्य प्रारंभ। यह आईओएस 3.2 तक काम किया। आईओएस 4 से शुरू करने से वेबव्यू में एक गैर-फ्रेम फ्रेम होना चाहिए या वीडियो नहीं खेलेंगे। मैंने इस परिवर्तन को दर्शाने के लिए नीचे अपना उदाहरण संपादित किया है।


यहां स्वीकृत उत्तर सटीक नहीं है। आप वास्तव में वीडियो स्ट्रीम करने के लिए UIWebView का उपयोग कर सकते हैं, और कुछ तरीकों से यह MPMoviePlayerController से बेहतर है। यदि आप loadRequest के माध्यम से वीडियो फ़ाइल (उदा। एक एमपी 4) का अनुरोध करने के लिए UIWebView बताते हैं: तो यह एक नई विंडो खुल जाएगा और आपके ऐप के भीतर वीडियो स्ट्रीम करेगा। MPMoviePlayerController के विपरीत, UIWebView द्वारा बनाई गई वीडियो विंडो को परिदृश्य या पोर्ट्रेट अभिविन्यास पर घुमाया जा सकता है। जब वीडियो समाप्त होता है, तो उपयोगकर्ता इस विंडो को बंद कर सकता है और आपके ऐप पर वापस जा सकता है।


संपादित करें 2: जब से तुम अब एक वीडियो प्लेयर है कि MPMoviePlayerViewController का उपयोग कर घूमता लागू कर सकते हैं, मैं अब एक कारण वीडियो तकनीक इस जवाब में वर्णित प्रयोग करने के लिए UIWebView का उपयोग करने के बारे में सोच सकते हैं।


सुझाव: के बाद से UIWebView वीडियो खेलने के लिए अपने स्वयं के विंडो बनाता है, तुम भी अपने दृश्य पदानुक्रम के UIWebView जोड़ने की जरूरत नहीं है। आप केवल UIWebView ऑब्जेक्ट बना सकते हैं और loadRequest को कॉल कर सकते हैं: ऑब्जेक्ट को कभी भी ऑब्जेक्ट पास करने के बिना वीडियो चलाने के लिए: सबव्यूव:।

self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease]; 
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request]; 
+0

मैंने चित्र वर्चुअल ओरिएंटेशन में वीडियो दिखाने के लिए सबसे अच्छी विधि होने के लिए UIWebView का उपयोग किया। हालांकि, सिम v3.1.3 में परीक्षण करते समय मुझे डीआईडी ​​को दृश्य पदानुक्रम में UIWebView जोड़ना होगा। मुझे .mov फ़ाइल चलाने की कोशिश करने में परेशानी थी, लेकिन इसे क्विकटाइम प्लेयर में खोलने और आईफोन के लिए "सेव" करने के लिए मुझे एक प्रयोग करने योग्य। एम 4 वी संस्करण दिया। – Jason

+0

मैं यह भी जोड़ सकता हूं कि UIWebView द्वारा लॉन्च किया गया मूवी प्लेयर MPMoviePlayerController के रूप में कई वीडियो प्रारूपों को संभाल नहीं सकता है। उदाहरण के लिए, जेपीईजी-एन्कोडेड फिल्में जो कि कई डिजिटल कैमरे रिकॉर्ड सिर्फ एक क्रॉस लाइन के साथ एक प्ले बटन के रूप में प्रस्तुत की जाती हैं (एक टूटी हुई फिल्म को इंगित करती है)। तो यह या तो अंतरफलक अभिविन्यास या सभी वीडियो प्रारूप है। – alleus

+0

@cduhn: क्या आप 4.0 के लिए इस कोड की पुष्टि कर सकते हैं? मुझे "फिल्म मूवी पथ सेट करना: (शून्य)" इस तरह से मिलता है। हालांकि यह अभी भी 3.2 में काम करता है - बहुत भ्रमित – scud

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