我用两个Activity创建一个android应用程序。 我的第二个Activity包含一个youtube视频嵌入。 当我启动此活动并运行此视频时,它可以正常运行。 但当我关闭我的活动时,如果我的视频正在播放,我的活动已经关闭,但我听到了我的视频。 我认为我的视频并没有真正关闭,而且她正在背景中播放。
你可以帮帮我吗?谢谢!
编辑:我在MyActivity中构建了一个测试,我遇到了同样的问题。
public class MyActivity extends Activity implements MBAdListener{
private FrameLayout layout;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
RelativeLayout adViewContainer = (RelativeLayout) findViewById(R.id.adView);
layout = new FrameLayout(this);
layout.setLayoutParams(new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT,
Gravity.CENTER)
);
layout.setBackgroundColor(Color.BLUE);
setContentView(layout);
WebView content = new WebView(this);
content.setLayoutParams(new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT,
Gravity.CENTER
));
content.setHorizontalScrollBarEnabled(false);
content.setVerticalScrollBarEnabled(false);
content.getSettings().setJavaScriptEnabled(true);
content.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
content.getSettings().setBuiltInZoomControls(false);
content.getSettings().setSupportZoom(true);
content.getSettings().setUseWideViewPort(true);
content.getSettings().setPluginsEnabled(true);
content.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
content.getSettings().setSavePassword(true);
content.getSettings().setSaveFormData(true);
content.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
layout.addView(content);
content.loadData("<iframe width=\"320\" height=\"200\" src=\"http://www.youtube.com/embed/vCXRt0kQvUE?autoplay=1\" frameborder=\"0\" allowfullscreen></iframe>", "text/html", "UTF-8");
}
答案 0 :(得分:1)
我发现了这个并且它有效!!!! 请参阅以下有关How to stop youtube video playing in Android webview?
的文章@Override
public void onPause() {
super.onPause();
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webview, (Object[]) null);
} catch(ClassNotFoundException cnfe) {
...
} catch(NoSuchMethodException nsme) {
...
} catch(InvocationTargetException ite) {
...
} catch (IllegalAccessException iae) {
...
}
}