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

使用ExoPlayer播放Raw资源报错:无法连接android.resource://

问题原因分析

这个错误的核心原因是:你用android.resource://格式的Uri加载raw本地资源时,ExoPlayer默认会调用HttpDataSource(专门处理网络资源的数据源)去尝试连接,而本地raw资源需要用RawResourceDataSource处理,两者不匹配导致连接失败。

解决方案步骤
  • 步骤1:生成正确的资源Uri
    别手动拼接android.resource://字符串,用系统提供的方式生成标准Uri,避免格式错误:

    // 方式1:用包名+资源ID生成
    Uri videoUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.your_video_file);
    // 方式2:用ContentResolver的常量更规范
    Uri videoUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/" + R.raw.your_video_file);
    

    注意替换your_video_file为你raw目录下的视频文件名(不带后缀,比如视频是intro.mp4就写intro)。

  • 步骤2:让ExoPlayer适配本地资源加载
    如果是默认初始化的ExoPlayer,直接用生成的Uri创建MediaItem即可,ExoPlayer会自动匹配对应的数据源:

    ExoPlayer player = new ExoPlayer.Builder(context).build();
    MediaItem mediaItem = MediaItem.fromUri(videoUri);
    player.setMediaItem(mediaItem);
    player.prepare();
    player.play();
    

    要是你自定义了数据源工厂,必须把RawResourceDataSource.Factory加入,确保能处理本地资源:

    DefaultDataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(context)
            .setDataSourceFactory(new RawResourceDataSource.Factory(context));
    ExoPlayer player = new ExoPlayer.Builder(context)
            .setDataSourceFactory(dataSourceFactory)
            .build();
    
  • 步骤3:检查资源文件合法性

    • 确认视频文件放在res/raw目录下,文件名只能用小写字母、数字、下划线,不能有大写或特殊字符
    • 检查R.raw.your_video_file是否能正确引用到资源,别写错文件名
  • 步骤4:确认ExoPlayer依赖版本
    用最新稳定版避免兼容问题,比如:

    implementation "com.google.android.exoplayer:exoplayer-core:2.19.1"
    implementation "com.google.android.exoplayer:exoplayer-ui:2.19.1" // 用UI组件才加这个
    
错误示例对比

你之前的错误Uri格式有问题,正确格式应该是android.resource://包名/资源ID,而不是把包名和资源ID连在一起:

// 错误写法
Uri wrongUri = Uri.parse("android.resource://com.onBoarding.app2131689472");
// 正确写法
Uri rightUri = Uri.parse("android.resource://com.onBoarding.app/2131689472");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:22:05