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

Android Studio中FileProvider视频播放异常问题排查与解决

VR视频播放功能FileProvider问题排查与解决

问题背景

开发了一个适配VR场景的功能:启动HTTP服务器监听文件名请求,触发后调用系统标准播放器播放对应视频。该功能曾正常运行,近期突然失效。

报错详情

使用FileProvider生成的视频URI为 content://com.example.vrtestvr.fileprovider/external_files/VRvideo/1.mp4,播放器提示无法缓冲启动,错误码2005。

相关代码(MainActivity中播放逻辑)

private void playVideo(File videoFile) {
    if (!videoFile.exists()) {
        Log.e("VideoFileCheck", "File does not exist: " + videoFile.getAbsolutePath());
        return;
    }

    String mimeType;
    String extension = videoFile.getName().substring(videoFile.getName().lastIndexOf(".") + 1).toLowerCase();
    switch (extension) {
        case "mp4":
            mimeType = "video/mp4";
            break;
        case "mkv":
            mimeType = "video/x-matroska";
            break;
        default:
            mimeType = "video/*"; 
            break;
    }

    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri videoUri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", videoFile);
    Log.d("VideoFileCheck", "Video URI: " + videoUri.toString());
    intent.setDataAndType(videoUri, mimeType);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    } else {
        Toast.makeText(this, "No application found to play video", Toast.LENGTH_SHORT).show();
    }
}

尝试过的无效方案

  • 修改AndroidManifest.xml中的FileProvider配置
  • 调整代码中URI生成与权限授予逻辑
  • 修改file_paths.xml中的路径映射规则

最终可行解决方案

直接使用file://格式的URI替代FileProvider生成的content URI,代码如下:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Android 8+ 必需
Uri data = Uri.parse(new File("file://" + videoFile).toString());
intent.setDataAndType(data, mimeType);
startActivity(intent);

正常路径示例:file:/storage/emulated/0/VRvideo/0.mp4


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:13:27