来自URL的视频可在Android 4上使用,但不能在Android 9上使用

时间:2019-05-20 14:14:55

标签: android

此代码可在Android 4.4.2上使用,但不能在装有Android 9的手机上使用:

String url="http://...LINK...mp4";
MediaController controller = new MediaController(context);
controller.setMediaPlayer(holder.video);
Uri videoUri = Uri.parse(url);
holder.video.setVideoURI(videoUri);
holder.video.requestFocus();
holder.video.start();

在Android 9上,我收到错误消息(在Android 4.4.2上没有错误):

Couldn't open http://...LINK...mp4: java.io.FileNotFoundException: No content provider: http://...LINK...mp4

如何解决?

2 个答案:

答案 0 :(得分:1)

Android 9.0 blocks cleartext (http) traffic by default

首选解决方案是不使用http URL,而使用https

您可以通过网络安全配置,告诉Android允许您的应用使用明文通信,但这并不安全。

答案 1 :(得分:0)

您可以在清单文件中使用一行代码。它对我有用。

 <application
        android:usesCleartextTraffic="true"
        android:label="@string/app_name"
        android:supportsRtl="true">
        <activity
            android:name=".EvaBotView"
            android:theme="@style/AppTheme.NoActionBar"
            android:configChanges="keyboardHidden|orientation|screenSize"/>
    </application>

在内部应用程序标签中,我们可以使用 android:usesCleartextTraffic =“ true” 来解决此问题。