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

Xamarin项目中ExoPlayer无法播放HTTP音频链接该如何修复?

问题根因

你当前使用的地址 http://server5.radio-streams.net:8065/index.html?sid=1 是网页播放页的HTML地址,不是真实的音频流地址,播放器拿到的是HTML文本内容,自然无法被音频提取器识别,和你给出的报错信息完全吻合:

  • 使用普通流媒体源报错是因为所有音频提取器都无法解析HTML文本
  • 使用HLS源报错是因为HTML文件没有HLS要求的#EXTM3U头标识
修复步骤
  • 第一步:抓取真实音频流地址
    打开你现有的网页地址,按F12调出浏览器开发者工具,切换到「网络」面板,过滤「媒体」类型的请求,刷新页面后即可看到电台真实的流地址,有效流地址的Content-Type一般为audio/mpeg、audio/aac、application/vnd.apple.mpegurl等,不会是text/html。通常这类电台的直链可以直接尝试去掉路径后缀,比如先测试 http://server5.radio-streams.net:8065/ 是否可以播放。
  • 第二步:配置Android明文流量权限
    你的流地址是HTTP明文协议,Android 9及以上系统默认禁止明文HTTP请求,需要在AndroidManifest.xml的application节点添加配置:
    <application
        ...
        android:usesCleartextTraffic="true">
        ...
    </application>
    
  • 第三步:匹配正确的MediaSource类型
    根据你抓取到的流格式选择对应的构建方法:
    • 普通MP3/AAC直流:使用BuildMediaSource构建ProgressiveMediaSource
    • HLS(m3u8后缀)流:使用BuildHlsMediaSource构建HlsMediaSource
    • DASH流:使用BuildDashMediaSource构建DashMediaSource
  • 第四步:添加调试逻辑(可选)
    可以在构建数据源前先发起一次请求校验返回头,如果返回的Content-Type为text/html即可直接判定地址无效,提前拦截报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 08:57:01