जब मैंने मीडिया प्लेयर को स्वचालित रूप से वीडियो चलाने के लिए सक्षम करने के लिए प्राथमिकता की तलाश की आधिकारिक दस्तावेज़ पर,
मुझे आईओएस (MediaPlaybackRequiresUserAction) के लिए सटीक विकल्प मिला।

हालांकि, इसके लिए कोई android-समतुल्य विकल्प नहीं है।
क्या एंड्रॉइड पर मीडिया को ऑटोप्ले करना संभव नहीं है?

1
sora 6 जुलाई 2018, 23:02

2 जवाब

सबसे बढ़िया उत्तर

मुझे बस इतना करना था कि मीडिया प्लेबैक व्यवहार को नियंत्रित करने के लिए Android की setMediaPlaybackRequiresUserGesture(true/false) पद्धति का उपयोग करें।
ऐसा करने का स्थान onCreate() में MainActivity.java फ़ाइल में है।
(धन्यवाद अमित के साहा!)

यह platforms/android/app/src/main/java/whatever/your/namespace/MainActivity.java के अंतर्गत है

import android.os.Bundle;
import org.apache.cordova.*;
import android.webkit.WebSettings; // ----- ADDED
import android.webkit.WebView; // ----- ADDED

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        // enable Cordova apps to be started in the background
        Bundle extras = getIntent().getExtras();
        if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
            moveTaskToBack(true);
        }

        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);

        // ----- ADDED
        WebView wv = (WebView) appView.getEngine().getView();
        WebSettings ws = wv.getSettings();
        ws.setMediaPlaybackRequiresUserGesture(false);
    }
}
0
sora 11 जुलाई 2018, 05:22

आप इसे एंड्रॉइड कॉर्डोवा में कर सकते हैं। एक विकल्प है।

public class YourActivity extends CordovaActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.onCreate(savedInstanceState);

        // enable Cordova apps to be started in the background
        Bundle extras = getIntent().getExtras();
        if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
           moveTaskToBack(true);
        }


        loadUrl(launchUrl);

        WebSettings ws = super.appView.getSettings();
        ws.setMediaPlaybackRequiresUserGesture(false); // its true by default
    }
}

Android Ref: https://developer.android.com/reference/ android/webkit/WebSettings#setMediaPlaybackRequiresUserGesture(boolean)

अपडेट करें:

ऐसा लगता है कि getSettings() अब appView से नहीं है, उस स्थिति में निम्नलिखित कार्य करना चाहिए

WebView webView = (WebView) appView.getEngine().getView();
WebSettings ws = webView.getSettings();
1
Amit K. Saha 6 मार्च 2019, 18:52