Android:Html 5 视频在活动完成时不会停止

Posted

技术标签:

【中文标题】Android:Html 5 视频在活动完成时不会停止【英文标题】:Android:Html 5 Video does not stop on activity finish 【发布时间】:2012-04-22 17:28:12 【问题描述】:

我创建了一个 android 活动,其中我有一个网络视图。我已经给了 webview 的 html5 文件路径。

Html 5 文件包含一个视频标签,我在其中从服务器调用 android 兼容的 mp4 视频,例如:“http://xxx/test/abc.mp4”。

视频在 webview 中可以很好地播放,但是当视频处于缓冲模式并且我关闭 webview 或通过按 android 平板电脑上的后退按钮关闭活动时,即使活动完成,该视频仍会在背景中播放。

当我关闭活动并且视频处于播放模式(而不是缓冲模式)时,视频会正常停止而没有任何问题。

我已尝试关闭 webview 线程,如:“http://***.com/questions/5946698/how-to-stop-youtube-video-playing-in-android-webview”中所述,但没有运气。 ...

请在这方面提供帮助。我被困在过去 5 天的问题中。

提前谢谢... 克坦

【问题讨论】:

【参考方案1】:

Raneez Ahmed 的回答是正确的。但是,如果您是为 API 级别 11 或更高级别开发,则可以直接访问 WebView.onPause 而无需反射:

@Override
public void onPause() 
    webview.onPause();
    super.onPause();

记得也要实现 onResume:

@Override
public void onResume() 
    super.onResume();
    webview.onResume();

【讨论】:

【参考方案2】:

Refer this post

唯一的办法就是从自己Activity的onPause方法中调用WebView的onPause方法

@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) 
        ...
    

【讨论】:

以上是关于Android:Html 5 视频在活动完成时不会停止的主要内容,如果未能解决你的问题,请参考以下文章

意式浓缩咖啡测试时,Android 设备不会在屏幕上启动活动

如何刷新活动

为视频播放器启动新活动时,如何强制android视频播放器在视频播放后不退出

Android:在通知时不会自动显示使用啥意图标志这样未破坏的活动

视频播放停止时如何切换到活动

为啥异步网络调用的回调方法在活动完成时不会导致内存泄漏?