我有一个音频的HTTP URL。
当Android TargetSDKVersion为26时,URL与ExoPlayer v2.7.0正常工作。
[TargetSDKVersion设置为28时,它不起作用。
出现以下错误:
W/MediaPlayer: Couldn't open http://***
java.io.FileNotFoundException: No content provider: http://***
但是,当我设置HTTPS URL时,它可以正常工作。
为此,我们在AndroidManifest中设置了网络配置
<application
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
并且network_security_config是:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
此外,媒体播放器使用setAudioAttributes
代替setAudioStreamType
。
mediaPlayer.setAudioAttributes(
new AudioAttributes
.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
对此有何想法?
我已如下更新network_security_config:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">my_domain.com</domain>
</domain-config>
</network-security-config>
并如下所示从AndroidManifest中删除了[[usesCleartextTraffic属性:
<application
<!--android:name="com.tv2consulting.TV2Application"-->
android:networkSecurityConfig="@xml/network_security_config"
允许特定域的明文流量对我有用。