webView 播放视频退到后台也能正常播放

2020-09-28  本文已影响0人  菜鸟何时起飞

问题:
我们使用WebView播放音乐或视频(比如油管视频)
前台播放一直很正常,但是比较费电
进入后台后就会暂停播放
所以需求就是我们想要App在后台时同样播放音视频
解决办法:
重写onWindowVisibilityChanged方法,让网页任然感觉像是在前台执行。

class BackgroundMediaWebView @JvmOverloads constructor(
    context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : WebView(context, attrs, defStyleAttr) {

    override fun onWindowVisibilityChanged(visibility: Int) {
        super.onWindowVisibilityChanged(View.VISIBLE)

        Log.i("BackgroundMediaWebView", "onWindowVisibilityChanged " +
                "visibility=${toReadableVisibility(visibility)}")
    }

    private fun toReadableVisibility(visibility: Int): String {
        return when(visibility) {
            View.VISIBLE -> "Visible"
            View.INVISIBLE -> "Invisible"
            View.GONE -> "Gone"
            else -> "Unknown"
        }
    }
}

在线视频地址:
https://v-cdn.zjol.com.cn/280443.mp4
https://v-cdn.zjol.com.cn/276982.mp4
https://v-cdn.zjol.com.cn/276984.mp4
https://v-cdn.zjol.com.cn/276985.mp4

上一篇下一篇

猜你喜欢

热点阅读