2015-08-31 15 views
14

मैं PhoneGap का उपयोग करके ऐप्लिकेशन के विकास कर रहा हूँ में यूट्यूब वीडियो स्वतः की कोशिश कर रहा। तो, यह एक वेब ऐप है। इस ऐप में, मुझे YouTube वीडियो को एम्बेड करने और जब भी उपयोगकर्ता उस विशेष पृष्ठ पर नेविगेट करता है तो उसे ऑटोप्ले करने की आवश्यकता होती है।एक PhoneGap/कॉर्डोबा एप्लिकेशन

मैं पढ़ा है कि एचटीएमएल 5 वीडियो ऑटोप्ले क्योंकि बैंडविड्थ concers की मोबाइल उपकरणों पर काम नहीं करता। मेरा सवाल यह है कि इस प्रतिबंध को बाईपास करने के लिए कोई तरीका है? मुझे जटिल कामकाज या हैक्स नहीं लगता है जो मुझे ऐसा करने की अनुमति दे सकता है। कुछ भी।

धन्यवाद।

+0

आप प्रस्तावित समाधान की कोशिश की? – lifeisfoo

उत्तर

5

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

निम्नलिखित जावास्क्रिप्ट कोड ऐसा कर सकता है:

(function() { 
    document.getElementsByTagName('video')[0].play(); 
})() 

इस कोड को निष्पादित करने के लिए पृष्ठ के लोड होते के बाद, हम एक WebViewClient सेट और onPageFinished()

webview.setWebViewClient(new CordovaWebViewClient(this, webview) { 
      // autoplay when finished loading via javascript injection 
      public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } 
}); 

final WebSettings settings = webview.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.setJavaScriptCanOpenWindowsAutomatically(true); 
    settings.setPluginState(WebSettings.PluginState.ON); 

A full example लागू करने की आवश्यकता:

webview = new CordovaWebView(this); 
    setContentView(webview); 

    final WebSettings settings = webview.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.setJavaScriptCanOpenWindowsAutomatically(true); 
    settings.setPluginState(WebSettings.PluginState.ON); 

    webview.setWebViewClient(new CordovaWebViewClient() { 
     // autoplay when finished loading via javascript injection 
     public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } 
    }); 

    webview.loadUrl("http://html5demos.com/video"); 
3

एक cordova/phonegap plugin यह करने के लिए वादा करता है कि नहीं है। यह एपीआई स्तर 17 (एंड्रॉइड 4.2) में जोड़ा गया वेबव्यू विधि setMediaPlaybackRequiresUserGesture पर भरोसा करता है।

यह बस वेबव्यू पर इस विधि कॉल:

WebView view = getWebViewFromPlugin(); 
view.getSettings().setMediaPlaybackRequiresUserGesture(false); 

यह भी phongap build में उपलब्ध है।

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