Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决

Stella981
• 阅读 739

Android中经常会使用到WebView来加载H5的页面,如果H5页面中有音频或者视频的播放时,还没播放完就退出界面,这个时候会发现音频或者视频还在后台播放,这就有点一脸懵逼了,下面是解决方案:

方案一:

在webview所在的activity中的onPause()和onResume()方法中写上两句话。

public void onPause() {
        super.onPause();  
        webview.onPause();  
    }  
public void onResume() {
        super.onResume();  
        webview.onResume();  
    }  

方案二:

//添加一下代码解决问题 webView退出之后音频视频还在播放问题
private AudioManager audioManager;
private AudioManager.OnAudioFocusChangeListener listener;


@Override
protected void onResume() {
    if (audioManager!= null) {
        audioManager.abandonAudioFocus(listener);
        audioManager = null;
    }

    super.onResume();
}

@Override
protected void onPause() {
    audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
    listener = new AudioManager.OnAudioFocusChangeListener() {
        @Override
        public void onAudioFocusChange(int focusChange) {
        }
    };
    int result = audioManager.requestAudioFocus(listener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);

    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
    }
    super.onPause();
}

以下是个人公众号(longxuanzhigu),之后发布的文章会同步到该公众号,方便交流学习Android知识及分享个人爱好文章:

Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
vue video全屏播放
需求:1、视频为长方形,页面初始化打开为横屏全屏播放视频。2、微信不支持自动播放,故自动播放需求删除。方法:1、vuevideoplayer插件因需求较简单,仅要求播放本地一个视频,故未选择使用插件。2、video<divid"video_box"style"zindex:999;":cl
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
RTSP协议外网视频直播监控无法播放WS
TSINGSEE青犀视频产品中,EasyNVR、EasyGBS等都是支持播放WSFLV格式的视频流的,曾经我们也处理过EasyGBS无法播放wsflv视频流的问题,大家可以回顾一下解决过程。在EasyNVREasyNVS系统架构中,同样也出现了EasyNVS在通道配置页面中播放视频流时,WSFLV无法播放的情况。!221.png(http
待兔 待兔
3年前
Android WebView加载优化
1.前言最近几年关于原生WebView与H5混合开发的项目越来越多,这种开发带来了很多便利,但也会有一些缺点,比如说通过WebView加载H5会有一定的卡顿现象,会影响用户体验。下面本文就此问题一一展开讨论。2.场景根据日常需求一般是通过webView.loadUrl()方法加载指定的网页,其大概流程如下:(https://i
Wesley13 Wesley13
3年前
android开发笔记之多媒体—播放音频(音乐)
Android应用增加动画,视频,音乐等多媒体功能,因此为手机提供音频录制,播放,视频录制,播放的功能十分重要。Android提供了常见音频,视频的编码,解码机制,Android支持的音频格式有MP3,WAV和3GP等,支持的视频格式有MP4和3GP等。Android提供了这些多媒体的支持类,可以非常方便地在手机应用中播放音频,
Stella981 Stella981
3年前
Javascript判断Video视频播放、暂停、结束完成及获取长度事件监听处理
在日常应用场景中,可能会遇到这么一个情况,需要判断用户是否完整的观看完了一部视频,在这个场景中,和视频相关的事件大体涉及到几个部分,获取视频长度,视频开始播放,暂停播放和播放结束,下面来看下如何通过JavaScript来监听获取视频的这几种状态。html页面视频标签大体如下:<video id\"video" controls\"controls
Stella981 Stella981
3年前
APPIUM 小程序webview问题
小程序许多界面都是hybrid,有些webview页面用uiautomatorviewer查看不到元素,这里就要获取webview 的pagesource了1.环境:  需要确定appium\_chromedriver的版本和微信的webview版本对应:获取微信的webview版本信息,打开x5调试debugx5.qq.com在信息页面
Stella981 Stella981
3年前
Flutter
在Flutter加载网页?也是有WebView的哦,和Android一样1.添加依赖dependencies:flutter\_webview\_plugin:^0.2.122.导入库import'import'package:flutter\_webview\_plugin/flutter\_webview\_plug
WeiSha100 WeiSha100
2年前
如何设置允许学员后台挂机刷课
在学习系统实际应用过程中,往往有一些特殊情况学员需要快速刷课的情况,这个时候就需要有一些后台的设置可以快速地使课程刷完,该如何进行设置呢?1.针对多个学员的快速刷课设置,打开机构管理后台,设置学员组,对学员组进行批量设置显示为持续播放,则前端视频播放失去焦点时,视频仍可以播放,说明学员可以后台挂机学习期间也可以操作其他页面,如:工作者回复客户微信等显示为切换