在 Android 上启用无需用户操作即可播放媒体



当我寻找使媒体播放器能够在官方文档上自动开始播放视频的首选项时,
我找到了ios(MediaPlaybackRequiresUserAction(的确切选项。

但是,没有任何与安卓相当的选项。
无法在安卓上自动播放媒体吗?

我所要做的就是使用 Android 的setMediaPlaybackRequiresUserGesture(true/false)方法来控制媒体播放行为。
执行此操作的位置位于MainActivity.java文件中的onCreate()中。
(谢谢阿米特·萨哈!

它正在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);
}
}

你可以在 android cordova 中执行此操作。还有另一种选择。

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
}
}

安卓参考: https://developer.android.com/reference/android/webkit/WebSettings#setMediaPlaybackRequiresUserGesture(布尔值(

更新:

似乎getSettings()不再存在appView,在这种情况下,以下应该有效

WebView webView = (WebView) appView.getEngine().getView();
WebSettings ws = webView.getSettings();

相关内容

最新更新