You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Track Player安卓端网络连接失败报错求助

Android端react-native-track-player报android-io-network-connection-failed错误排查方案

问题详情

使用react-native-track-player播放音频时,Android端触发如下错误:

{"error": {"code": "android-io-network-connection-failed", "message": "Source error"}, "state": "error"}

已完成的排查动作:

  • 模拟器/真机网络正常,浏览器可访问任意内容
  • AndroidManifest.xml已添加必要网络权限
  • MP3链接为HTTPS协议
  • 真机测试问题依旧,iOS端运行完全正常

环境版本:

  • React Native 0.72
  • react-native-track-player ^4.0.1

相关运行日志:

Event.PlaybackState {"state": "stopped"}
 LOG  Event.PlaybackState {"state": "stopped"}
 LOG  Event.PlaybackPlayWhenReadyChanged {"playWhenReady": false}
 LOG  Event.PlaybackPlayWhenReadyChanged {"playWhenReady": false}
 LOG  Event.PlaybackActiveTrackChanged {"index": 0, "lastIndex": 0, "lastPosition": 0, "lastTrack": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"}, "track": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"}}
 LOG  Event.PlaybackActiveTrackChanged {"index": 0, "lastIndex": 0, "lastPosition": 0, "lastTrack": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"},, "track": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"},}
 LOG  Event.PlaybackActiveTrackChanged {"index": 0, "lastIndex": 0, "lastPosition": 0, "lastTrack": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"},, "track": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"},}
 LOG  Event.PlaybackActiveTrackChanged {"index": 0, "lastIndex": 0, "lastPosition": 0, "lastTrack": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"}, "track": {"artist": "artist", "artwork": "local image", "duration": "217574", "id": "CD-NEW13-6", "title": "title", "url": "https link to the mp3 player"},}
 LOG  Event.PlaybackState {"state": "loading"}
 LOG  Event.PlaybackState {"state": "loading"}
 LOG  Event.PlaybackPlayWhenReadyChanged {"playWhenReady": true}
 LOG  Event.PlaybackPlayWhenReadyChanged {"playWhenReady": true}
 LOG  Event.PlaybackState {"state": "buffering"}
 LOG  Event.PlaybackState {"state": "buffering"}
 LOG  Event.PlaybackState {"error": {"code": "android-io-network-connection-failed", "message": "Source error"}, "state": "error"}

排查方案

1. 配置Android网络安全规则

Android 9+对HTTPS链接的证书验证严格,若服务器证书未被系统信任,会导致连接失败。在res/xml目录创建network_security_config.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

在AndroidManifest.xml的application标签中添加引用:

android:networkSecurityConfig="@xml/network_security_config"

若MP3链接使用自定义证书,可添加domain-config单独信任该域名。

2. 验证链接的Android端兼容性

部分服务器会限制请求UA,Android媒体播放器的UA与浏览器不同。可直接用Android原生MediaPlayer测试链接是否能播放,或在链接后添加随机参数(如?t=1699999999)规避缓存问题。同时检查服务器响应头是否包含Content-Type: audio/mpeg,缺失该头可能导致ExoPlayer无法识别音频格式。

3. 调整react-native-track-player版本

v4.0.1与RN0.72可能存在兼容性问题,尝试降级到3.2.0或升级至最新稳定版,升级后需按照官方文档重新配置Android端的settings.gradle、build.gradle依赖。

4. 确认前台服务权限与配置

Android 10+后台网络访问受限制,音频播放需启动前台服务。确保AndroidManifest.xml添加权限:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />

同时在播放器初始化时配置前台服务选项,确保播放时触发前台通知。

5. 检查ExoPlayer兼容性

react-native-track-player底层依赖ExoPlayer,若ExoPlayer无法播放该链接,需排查音频编码是否为Android支持的格式(如MP3、AAC),或服务器是否采用了ExoPlayer不支持的流媒体协议。

内容的提问来源于stack exchange,提问作者smitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:54:53