2012-07-18 19 views
8

मेरे एंड्रॉइड ऐप में मैं उपयोगकर्ता को एक बार एक छवि टैप करना चाहता हूं, यूट्यूब वीडियो स्वचालित रूप से चलाएं और जब वीडियो किया जाता है तो उपयोगकर्ता तुरंत ऐप पर वापस आ जाता है। एंड्रॉइड में ऐसा करने का सबसे अच्छा तरीका क्या है?एंड्रॉइड ऐप में यूट्यूब वीडियो बजाना

मैंने इरादों का उपयोग करने की कोशिश की। यह उस काम में आता है जो वीडियो मुझे लगता है कि यूट्यूब वेब पेज है। हालांकि वीडियो चलाने के लिए एक और टैप की आवश्यकता है। यदि संभव हो तो मैं इससे बचना चाहूंगा।

मैंने पूरे मीडियाप्लेयर, readyAsync, setOnPreparedListener की कोशिश की और इसे कभी काम करने के लिए नहीं मिला। कुछ कारणों से तैयार नहीं किया गया था। कोई अपवाद नहीं फेंक दिया गया था। मैं परीक्षण करने के लिए एमुलेटर का उपयोग कर रहा हूं और मैं एंड्रॉइड के लिए नया हूं इसलिए मुझे यकीन नहीं है कि व्यवहार भौतिक उपकरणों पर अलग होगा या नहीं।

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

चीयर्स!

+0

इससे मदद मिल सकती है http://www.gadgetsaint.com/android/play-youtube-android-youtube-player-api/ – ASP

उत्तर

29

अद्यतन: नीचे सब कुछ अभी भी सही है, लेकिन official YouTube API for Android अब उपलब्ध है।

अब तक, एंड्रॉइड पर एक यूट्यूब वीडियो चलाने का सबसे आसान तरीका मूल एंड्रॉइड यूट्यूब ऐप लॉन्च करने के लिए एक इरादा को आग लगाना है। बेशक, यह असफल हो जाएगा यदि आप प्रमाणित Google डिवाइस पर नहीं हैं, जिसमें Google ऐप्स का पूरक नहीं है। (किंडल फायर शायद इस तरह के डिवाइस का सबसे बड़ा उदाहरण है)। इस दृष्टिकोण के साथ समस्या यह है कि वीडियो समाप्त होने पर उपयोगकर्ता स्वचालित रूप से आपके ऐप पर वापस नहीं आ जाएगा; उन्हें बैक बटन दबा देना होगा, और इस बिंदु पर आप शायद उन्हें खो चुके हैं।

दूसरे विकल्प के रूप में, आप YouTube वीडियो चलाने के लिए MediaPlayer API का उपयोग कर सकते हैं। लेकिन इस दृष्टिकोण के साथ तीन चेतावनी हैं:

1) आपको YouTube की GData webservice API पर कॉल करने की आवश्यकता है, जो इसे वीडियो की आईडी पास कर रहा है। आपको मेटाडाटा का एक टन वापस मिल जाएगा, इसके साथ ही आरटीएसपी यूआरएल जो आपको एच .264-एन्कोडेड स्ट्रीम को वापस चलाने के लिए मीडियाप्लेयर को पास करना होगा। यही कारण है कि MediaPlayer का उपयोग करने का आपका प्रयास विफल रहा; आप शायद स्ट्रीम करने के लिए सही यूआरएल का उपयोग नहीं कर रहे थे।

2) जीडीएटी/मीडियाप्लेयर दृष्टिकोण केवल निम्न-रिज़ॉल्यूशन सामग्री (176x144 या इसी तरह) वापस चलाएगा। सामग्री की चोरी को रोकने के लिए यह YouTube के हिस्से पर एक जानबूझकर निर्णय है। बेशक, यह एक बहुत ही संतोषजनक अनुभव प्रदान नहीं करता है। उच्च रिज़ॉल्यूशन स्ट्रीम प्राप्त करने के लिए बैक-दरवाजा हैक हैं, लेकिन वे एंड्रॉइड की सभी रिलीज पर समर्थित नहीं हैं और उनका उपयोग यूट्यूब की सेवा की शर्तों का उल्लंघन है।

3) आरटीएसपी धाराओं को कुछ आंतरिक नेटवर्क/फ़ायरवॉल द्वारा अवरुद्ध किया जा सकता है, इसलिए यह दृष्टिकोण सभी उपयोगकर्ताओं के लिए काम नहीं कर सकता है।

तीसरा विकल्प आपके एप्लिकेशन में वेबव्यू एम्बेड करना है। यहां दो दृष्टिकोण हैं जो आप यहां ले सकते हैं:

1) आप एक फ्लैश ऑब्जेक्ट एम्बेड कर सकते हैं और यूट्यूब के लिए मानक डेस्कटॉप फ्लैश प्लेयर चला सकते हैं। आप खिलाड़ी को नियंत्रित करने के लिए जावास्क्रिप्ट एपीआई का भी उपयोग कर सकते हैं, और घटनाओं को वापस मूल एंड्रॉइड ऐप पर रिले कर सकते हैं। यह दृष्टिकोण अच्छी तरह से काम करता है, लेकिन दुर्भाग्य से फ्लैश को एंड्रॉइड प्लेटफ़ॉर्म पर बहिष्कृत किया जा रहा है, और एंड्रॉइड 4.1 और उसके बाद के संस्करण के लिए काम नहीं करेगा।

2) आप HTML5 के माध्यम से YouTube चलाने के लिए <video> टैग एम्बेड कर सकते हैं। इसके लिए समर्थन एंड्रॉइड की विभिन्न रिलीज के बीच बदलता है। यह एंड्रॉइड 4 पर अच्छा काम करता है।0 और बाद में; पहले रिलीज़ में कुछ हद तक स्पॉट एचटीएमएलसमर्थन है। तो, एंड्रॉइड की रिलीज़ के आधार पर आपके एप्लिकेशन को किस तरह के समर्थन के आधार पर समर्थन करना चाहिए, आप Android 4.x या बाद में, और एंड्रॉइड के सभी पुराने संस्करणों के लिए फ्लैश को एम्बेड करने का एक संकर दृष्टिकोण ले सकते हैं।

YouTube वीडियो चलाने के लिए HTML5 का उपयोग करने के बारे में StackOverflow पर कई धागे हैं; उनमें से कोई भी वास्तव में पूरी प्रक्रिया का वर्णन नहीं करता है जिसे आपको एक ही स्थान पर पालन करना होगा। यहाँ उनमें से कुछ के लिए लिंक है:

Android - How to play Youtube video in WebView?

How to embed a YouTube clip in a WebView on Android

Play Youtube HTML5 embedded Video in Android WebView

यह सब सप्ताह/आने वाले महीनों में नाटकीय रूप से आसान हो जाएगा; Google I/O 2012 में, उन्होंने एंड्रॉइड के लिए एक नया यूट्यूब एपीआई प्रस्तुत/प्रदर्शन किया जो एंड्रॉइड 2.2 (एंड्रॉइड यूजरबेस के बारे में 9 5% इस लेखन के रूप में) के पूर्ण समर्थन के साथ आपके आवेदन में यूट्यूब सामग्री के सीधे एम्बेडिंग का समर्थन करेगा। यह पर्याप्त तेज़ी से नहीं पहुंच सकता है।

+0

आगामी API बहुत अच्छा लगता है! जानकारी के लिए धन्यवाद। – SundayMonday

+0

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

+0

@Giuilo - हमारे ऐप में, यदि फ्लैश मौजूद नहीं है तो हम वापस GData/MediaPlayer API पर आते हैं। यह एक ब्लैक स्क्रीन से बेहतर है। – mportuesisf

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