Android MediaPlayer使用之网络访问异常

Android MediaPlayer使用之网络访问异常

1.问题描述

2019-04-02 21:26:15.552 22138-22138/com.uyeh.mediaplayertest D/MainActivity: onClick: play
2019-04-02 21:26:15.568 22138-22138/com.uyeh.mediaplayertest V/MediaHTTPService: MediaHTTPService(android.media.MediaHTTPService@b435dbd): Cookies: null
2019-04-02 21:26:15.579 22138-22150/com.uyeh.mediaplayertest V/MediaHTTPService: makeHTTPConnection: CookieManager created: java.net.CookieManager@f6cafb2
2019-04-02 21:26:15.579 22138-22150/com.uyeh.mediaplayertest V/MediaHTTPService: makeHTTPConnection(android.media.MediaHTTPService@b435dbd): cookieHandler: java.net.CookieManager@f6cafb2 Cookies: null
2019-04-02 21:26:15.595 22138-22195/com.uyeh.mediaplayertest I/mediaplayertes: The ClassLoaderContext is a special shared library.
2019-04-02 21:26:15.590 22138-22138/com.uyeh.mediaplayertest I/Binder:22138_3: type=1400 audit(0.0:2536): avc: denied { read } for name=“u:object_r:mtk_em_tel_log_prop:s0” dev=“tmpfs” ino=1358 scontext=u:r:untrusted_app:s0:c79,c256,c512,c768 tcontext=u:object_r:mtk_em_tel_log_prop:s0 tclass=file permissive=1
2019-04-02 21:26:15.626 22138-22195/com.uyeh.mediaplayertest D/NetworkSecurityConfig: No Network Security Config specified, using platform default

D/NetworkSecurityConfig: No Network Security Config specified, using platform default

刚开始以为是这个错误,到处百度,问题没有解决
报错说明
主要是我想用Android MediaPlayer 通过一个url播放 网络歌曲,结果在android8及之前的都可以正常播放, 但是放到android9上就是播不了, 报错就是上面图示。说实话初次使用MediaPlayer 觉得这个东西不是很杂,但是出现这个问题后,百思不得解,以为是机器的问题, 但是android 9 上装其他播放居然可以正常的播放。接着就是问度娘,小伙伴。搞了各种方案后,突然看到这么一条。
Android MediaPlayer使用之网络访问异常_第1张图片
参考此文章

2.问题定义

Android 9.x 默认不允许http访问,所以导致MediaPlayer在获取在线歌曲缓存时,网络访问异常,因为歌曲url是http协议
可以参考这篇文章:
源码分析 Android 9.0 http请求适配原理

3.问题解决方案

两种方式:主要是需要声明 允许http访问(具体原理参考 Android9.0 http请求适配原理)

1.在 AndroidManifes.xml  application 标签中 增加 android:usesCleartextTraffic="true"

这种方法比较容易操作

2.访问http之前 ,调用setCleartextTrafficPermitted(true);

这种方式没用过

注:

刚开始以为是权限不够, 因为自Android 6.0后 一些个权限需要动态申请, 刚开始确实至于权限声明没有动态申请, 
然后动态申请了也无法解决问题

写在最后

这个有时候解决一个问题,还是要先判断一下, 锁定一下问题的发生的大致方向。否则这个费时费力。

你可能感兴趣的:(Android,MediaPlayer,错误备案,http)