【问题标题】:Android get Uri from file from raw folder usin the nameAndroid使用名称从原始文件夹中的文件获取Uri
【发布时间】:2017-02-06 16:57:03
【问题描述】:

我正在阅读有关此问题的解决方案。我有这个代码

String filename = "android.resource://" + this.getPackageName() + "/raw/" + lastButtonFilename;
try {
    Log.i("Home", "Recreamos la URL: " + filename);
    mediaPlayer.setDataSource(this, Uri.parse(filename));
} catch (Exception e) {
    Log.e("Home", "Error setting source media." + e.getMessage(), e);
}

这是我在 Android Studio 中的应用截图: 我看到了这个日志:

02-06 17:49:28.605 28884-28884/com.mypackage I/Home: Recreamos la URL: android.resource://com.mypackage/raw/sound_test.mp3
02-06 17:49:28.614 28884-28884/com.mypackage W/MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No resource found for: android.resource://com.mypackage/raw/sound_test.mp3

我的 src/res/raw 文件夹中有 sound_test.mp3。我正在使用 Android Studio。我已经从正确的路径创建了 URI(我认为)。不会有事吧?

【问题讨论】:

  • 摆脱所有这些并使用the version of create() that takes a resource ID
  • 我必须动态地提取文件,因为我知道在运行时该文件选择用户,在这些时候很难知道 id。
  • 看起来setDataSource() 不接受android.resource 方案,所以我认为你没有太多选择。
  • 您创建原始文件夹的位置。提供它的简单截图
  • developer.android.com/reference/android/media/…, android.net.Uri) 方法有一个 Context - Uri 形式 :) 我在主帖中添加了一个截图

标签: android


【解决方案1】:

更改您的代码...

String videoUri = "android.resource://" + getPackageName() + "/" + R.raw.sound_test;

本教程有视频文件,但音频文件处理相同。来源Click here for more description

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    相关资源
    最近更新 更多