إيجابيات وسلبيات mpmovieplayercontroller مقابل إطلاق UiWebView إلى دفق الفيلم

StackOverflow https://stackoverflow.com/questions/976652

سؤال

لدي عميل لديه محتوى فيديو للويب بتنسيق فلاش. مهمتي هي مساعدتهم في إظهار مقاطع الفيديو في تطبيق iPhone.

أدرك أن الخطوة الأولى هي الحصول على مقاطع الفيديو هذه بتنسيق QuickTime المناسب لجهاز iPhone.

ثم سأضطر إلى مساعدة العميل معرفة كيفية أو مكان استضافة هذه الملفات. إذا كان هذا صعبا أفترض أنه يمكن استضافته في يوتيوب.

رأيي الرئيسي، على الرغم من، هو ما هو النهج الذي يجب اتباعه لإدارة الفيديو. ما هي إيجابيات وسلبيات MPMoviePlayerController مقابل إطلاق UIWebView مع عنوان URL للتيار؟ هل هناك أي فرق؟ هو واحد منهم أكثر أو أقل غفرة؟ هل واحد منهم تجربة مستخدم أفضل؟ أي gotchas قد أتوقع أن يركض؟

أنا أفترض أن تشغيل الفيديو سهل للغاية على iPhone. هل من المعقول تجربة كلاهما ولديك واحدة متوفرة كإحالة، أو هل ستكون مضيعة للوقت؟ أحاول تحديد موعد هذا قليلا، لذلك أحب أن أسمع تجارب العالم الحقيقي من أي شخص فعل هذا.

هل كانت مفيدة؟

المحلول

لا يمكن uiwebView تشغيل مقاطع الفيديو في الواقع. سيقوم التنقل إلى صفحة YouTube مع UIWebView ببساطة تشغيل تطبيق iPhone الخاص ب YouTube. القيام بذلك بطريقة معينة سيعود التحكم في تطبيقك بعد لعب الفيديو. انظر هنا: 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];

نصائح أخرى


تحرير: مثالي الأصلي في هذه الإجابة تهيئة WebView مع إطار CGrectzero. هذا يعمل حتى ios 3.2. بدءا من IOS 4، يجب أن يكون WebView إطارا غير صفري أو لن يلعب الفيديو. لقد قمت بتحرير مثالتي أدناه لتعكس هذا التغيير.


الإجابة المقبولة هنا ليست دقيقة. يمكنك في الواقع استخدام UiWebView لمقاطع الفيديو، وفي بعض الطرق أفضل من MPMoviePlayerController. إذا أخبرت UiwebView لطلب ملف فيديو (مثل MP4) عبر LoadRequest:، فسوف يفتح نافذة جديدة وتدفق الفيديو داخل التطبيق الخاص بك. بخلاف MPMoviePlayerController، يمكن تدوير نافذة الفيديو التي أنشأتها UIWebView إلى المناظر الطبيعية أو اتجاه عمودي. عند انتهاء الفيديو، يمكن للمستخدم إغلاق هذه النافذة والعودة إلى تطبيقك.


عدل


تلميح: نظرا لأن UiwebView ينشئ نافذة خاصة بها لتشغيل الفيديو، فلن تحتاج حتى إلى إضافة UiWebView إلى التسلسل الهرمي الخاص بك الرئاسة. يمكنك فقط إنشاء كائن UIWebView واستدعاء LoadRequest: لتشغيل الفيديو دون اجتياز الكائن إلى EndSubView :.

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];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top