android WebView音频关闭的问题

关于WebView加载的的网页中加载一些音频文件,退出的时候无法关闭的问题,网上一堆的解决方案,但是都没有解决我的问题。我们的界面是一个很特殊的情况,在onDestory的时候,不能立刻关闭WebView( myWebView.destroy();myWebView = null;)

后期各种尝试,都没法关闭,最后想到了用系统的音频管理来处理这个问题,没想到还真的可以,下面直接放代码:

if (audioManager == null) {
                audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            }
            /**系统音频控制权限,AUDIOFOCUS_GAIN_TRANSIENT 短暂获取**/
            int result = audioManager.requestAudioFocus(
                    adfocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
            /**AUDIOFOCUS_REQUEST_GRANTED 标识拿到控制,然后再将监听释放**/
            if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
                if (audioManager != null) {
                    audioManager.abandonAudioFocus(adfocusChangeListener);
                }
            }

  

    /**
     * 获取音频焦点
     **/
    private AudioManager.OnAudioFocusChangeListener adfocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
        public void onAudioFocusChange(int focusChange) {
        }
    };

  

onAudioFocusChange()方法的focusChange参数指示了该AudioFocus的竞争者对AudioFocus的拥有情况,取值如下:

  • AUDIOFOCUS_GAIN:获得了Audio Focus;
  • AUDIOFOCUS_LOSS:失去了Audio Focus,并将会持续很长的时间。这里因为可能会停掉很长时间,所以不仅仅要停止Audio的播放,最好直接释放掉Media资源。而因为停止播放Audio的时间会很长,如果程序因为这个原因而失去AudioFocus,最好不要让它再次自动获得AudioFocus而继续播放,不然突然冒出来的声音会让用户感觉莫名其妙,感受很不好。这里直接放弃AudioFocus,当然也不用再侦听远程播放控制【如下面代码的处理】。要再次播放,除非用户再在界面上点击开始播放,才重新初始化Media,进行播放。
  • AUDIOFOCUS_LOSS_TRANSIENT:暂时失去Audio Focus,并会很快再次获得。必须停止Audio的播放,但是因为可能会很快再次获得AudioFocus,这里可以不释放Media资源;
  • AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:暂时失去AudioFocus,但是可以继续播放,不过要在降低音量。
时间: 2024-08-04 00:52:12

android WebView音频关闭的问题的相关文章

Android webview 退出关闭声音 网页调用javascript

关闭声音,目前没有好的办法,可以参考网络上的实用webview.reload(); @Override protected void onResume() { // TODO Auto-generated method stub mWebView.onResume(); if (commonDialog != null) { commonDialog.dismiss(); } super.onResume(); } @Override protected void onPause() { //

Android WebView问题汇总以及解决方法

Android WebView常见问题解决方案汇总: 1.Android webview背景设置为透明无效 webview是一个使用方便.功能强大的控件,但由于webview的背景颜色默认是白色,在一些场合下会显得很突兀(比如背景是黑色). 此时就想到了要把webview的背景设置为透明,这样就可以与其背景融为一体. 在2.X的平台下,一般设置webview背景为透明的方法如下: wvContent.setBackgroundColor(0); 但当程序在4.0上使用时,发现居然这种设置方法无法

Android WebView 开发教程

1.WebView的使用 (a). 创建WebView的实例加入到Activity中 WebView webview = new WebView(this); setContentView(webview); 或者在xml中配置WebView <Webview android:layout_width="match_parent" android:layout_height="match_parent" > </Webview> (b). 访

Android WebView 开发详解(一)

转载请注明出处  http://blog.csdn.net/typename/article/details/39030091 powered by meichal zhao 概览: Android WebView在Android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器.WebView内部实现是采用渲染引擎来展示view的内容,提供网页前进后退,网页放大,缩小,搜索,前端开发者可以使用web inspector(A

android webview开启html5支持

最近做的一个小项目需要用到webview.虽然只是一个简单的网页,但是由于以前用的都只是显示本地文件,没有显示网页文件.现在需要显示网页文件,发现许多网站的webapp做的挺不错的,无论是显示还是用户体验都很不错(平时上网用uc的省流量功能看不出来). 但是虽然很好用,却发现部分网页甚至连链接都打不开.如果是个别小众网页都算了,这可是360搜索首页啊,要说别人大公司的静态写的兼容性有问题实在说不过去,所以就只能自己找问题了.最有可能的莫过于部分html5的功能没有开启,因为在以往使用时发现有的h

android WebView详解,常见漏洞详解和安全源码

这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析. 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.csdn.net/self_study/article/details/54928371. 对技术感兴趣的同鞋加群 54

你不知道的 Android WebView 使用漏洞

前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由 Android的WebView 实现的,但是 WebView 使用过程中存在许多漏洞,容易造成用户数据泄露等等危险,而很多人往往会忽视这个问题 今天我将全面介绍 Android WebView的使用漏洞 及其修复方式 阅读本文前请先阅读: Android开发:最全面.最易懂的Webview详解 最全面 & 最详细的 Android WebView与JS的交互方式 汇

android WebView详解,常见漏洞详解和安全源码(下)

上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑. 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http://blog.csdn.net/self_study/article/details/55046348 对技术感兴趣的同鞋加群 544645972 一起交流. WebView 常见漏洞 WebView 的漏洞也是不少,列举一些常见的漏洞,实时更新,如果有其他的常见漏洞,知会一下我-- WebView

手把手教你构建 Android WebView 的缓存机制 &amp; 资源预加载方案

前言 由于H5具备 开发周期短.灵活性好 的特点,所以现在 Android App大多嵌入了 Android Webview 组件进行 Hybrid 开发 但我知道你一定在烦恼 Android Webview 的性能问题,特别突出的是:加载速度慢 & 消耗流量 今天,我将针对 Android Webview 的性能问题,提出一些有效解决方案. 目录 1. Android WebView 存在什么性能问题? Android WebView 里 H5 页面加载速度慢 耗费流量 下面会详细介绍. 1.