解决Android真机不能播放视频问题

Flutter 使用 video_player 播放视频,android模拟器上播放没有问题,真机出现播放画面黑屏问题。

检查debug信息,发现出现一条错误提示:

1
PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, null, null)

问题原因
安卓上从9.0(API level28)开始,明文通信支持默认是被禁用的,官方说法是不安全。因为我们播放的视频源是http协议,所以无法播放。

解决方法
修改AndroidManifest.xml

1
2
3
4
5
6
7
8
9
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
</manifest>