Videoview播放网络视频问题一次性解决

一般解决

我们知道,安卓播放网络视频是需要网络权限的,所以第一步:
在AndroidMainfest文件里面添加如下代码:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

如图:
在这里插入图片描述

同时配置network_security_config.xml文件,在res文件夹下新建xml文件夹,在xml文件夹新建文件
如图位置如下:
在这里插入图片描述
network_security_config.xml文件

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <pin-set expiration="2018-01-01">
            <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
            <!-- backup pin -->
            <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
        </pin-set>
    </domain-config>
</network-security-config>

并在AndroidMainfest文件里添加:

android:networkSecurityConfig="@xml/network_security_config"

如图:
在这里插入图片描述

特殊解决

如果这个添加了之后还是播放不了,则可能是安卓api版本过高,限制了HTTP明文请求,具体原因可参见这篇文章
解决方法如下:
在AndroidMainfest里面先添加如下代码:

android:usesCleartextTraffic="true

同时修改network_security_config.xml文件,改为:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <pin-set expiration="2018-01-01">
            <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
            <!-- backup pin -->
            <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
        </pin-set>
    </domain-config>
</network-security-config>

然后就可以播放了~~~

Logo

一站式 AI 云服务平台

更多推荐