2011-09-15 12 views
9

किसी भी तरह यूट्यूब एचटीएमएल 5 वीडियो ने एक सप्ताह पहले मेरे लिए काम करना बंद कर दिया था। मुझे कोई जानकारी नहीं है की क्यों। यहाँ कोड है कि पिछले सप्ताह काम कर रहा था है (ठीक है, नहीं असली कोड है, लेकिन छोटी से छोटी उदाहरण मैं कर सकता है):यूट्यूब एचटीएमएल 5 वीडियो एंड्रॉइड में काम करना बंद कर दिया

public class VideoTestActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     WebView webView = new WebView(this); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setPluginState(PluginState.OFF); 
     webView.setWebChromeClient(new TestWebChromeClient()); 

     setContentView(webView); 

     // Try with http://player.vimeo.com/video/24158845 and it works. 
     webView.loadUrl("http://www.youtube.com/embed/e2UIg3Ddfp0"); 
    } 

    private class TestWebChromeClient extends WebChromeClient { 
     @Override 
     public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) { 
      super.onShowCustomView(view, callback); 
      VideoTestActivity.this.setContentView(view); 
     } 
    } 
} 

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

+3

मैंने कल रात बिना किसी किस्मत के साथ काम किया है .. यह अजीब है .. मैं डिफ़ॉल्ट नियंत्रण के साथ यूट्यूब प्राप्त करने में सक्षम था लेकिन अभी भी लगता है कि कहीं भी एक जेएस त्रुटि है, –

+0

btw उपरोक्त कोड काम कर रहा है अभी व। मान लें कि Google ने जावास्क्रिप्ट त्रुटि – dparnas

+0

हां तय की है, हां, उन्होंने वास्तव में ऐसा किया है, इसलिए यह सब एक गैर-समस्या है। –

उत्तर

2

Youtube ने अपने एम्बेडेड पेज में कुछ बदल दिया हो सकता है और अधिकतर यह WebView के अंदर समस्याएं पैदा कर रहा है और यही कारण है कि यह अब और काम नहीं कर रहा है।

क्या आप पहले से ही उसी डिवाइस पर अपने ऐप का परीक्षण कर रहे हैं?

मुझे नहीं लगता कि यह इस समाधान का उपयोग करने के लिए एक अच्छा अभ्यास है, क्योंकि आप उस सामग्री का भरोसा नहीं कर सकते जो आज आप Youtube से प्रदर्शित करते हैं और यह काम करता है, कुछ दिनों में भी वही होगा और यह अभी भी काम, जैसा कि आपने अभी सामना किया है। मुझे videos और Youtube सामग्री के साथ भी इसी तरह की समस्याएं थीं, यह एक डिवाइस पर काम करेगी, न कि कुछ अन्य उपकरणों पर। यह Flash सामग्री भी है, और कई एंड्रॉइड डिवाइसों में Flash नहीं है और सामग्री को चलाने में सक्षम नहीं होंगे।

एक समाधान वीडियो खेलने के लिए एक Intent बनाने के लिए होगा:

 Intent videoIntent=new Intent(Intent.ACTION_VIEW, 
            Uri.parse("http://www.youtube.com/my_url")); 
     startActivity(videoIntent); 

लेकिन क्या मैं सिफारिश करेंगे के रूप में Supported Media Formats में सुझाव दिया Android के लिए वीडियो सांकेतिक शब्दों में बदलना और अपने खुद के सर्वर पर उन्हें स्टोर करने के लिए है अगर आप संभावना है।

संपादित करें: उन्होंने निश्चित रूप से कुछ बदल दिया है क्योंकि वहां एक जेएस त्रुटि है।

mWebView.setWebChromeClient(new WebChromeClient(){ 
     @Override 
     public void onConsoleMessage(String message, int lineNumber, 
       String sourceID) { 
      super.onConsoleMessage(message, lineNumber, sourceID); 
      Log.i("VIDEO VIEW",message); 
     } 
} 

यह संदेश त्रुटि मुझे मिल गया है:

TypeError: Result of expression 'a' [undefined] is not an object.line 78sourcehttp://www.youtube.com/embed/e2UIg3Ddfp0 

मैं अगर यह आपकी मदद करता है पता नहीं है, मैं बाद में फिर से विचार किया है और देखेंगे आप उन्हें WebChromeClient का उपयोग करके ट्रैक कर सकते हैं मुझे क्या मिल सकता है

+0

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

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