Cordova/PhoneGap 获取资源文件路径(在 Res 文件夹之外)

Cordova/PhoneGap Get File Path To Resource (Outside of Res Folder)

我们有一个 Cordova/PhoneGap 项目,我们正在尝试播放音频文件。

我们已经尝试了几十次获取绝对文件路径的尝试,但都失败了。

例如

    File file = new File("android.resource://www/audio/0.m4a");
               //also tried "www/audio/0.m4a"
               //also tried "file:///assets/www/audio/0.m4a"
           if(file.exists())
           {
               Log.d("1","FILE EXISTS");
           }else
           {
               Log.d("2","FILE DOES NOT EXIST");
           }

文件存在且在文件夹中

如果我将文件移动到 /res/raw 文件夹并使用 R.res.0 播放它,就会找到(并播放)该文件。

你知道我如何获得此音频文件的绝对路径以便从中创建文件对象吗?

您似乎无法从资产创建文件对象。

几个问题:

当你有 res->raw 文件夹时,为什么要将文件保存在 assets 文件夹中?

如果您想从 Assets 播放,您需要这样做

final MediaPlayer mediaPlayer=new MediaPlayer();  
final AssetFileDescriptor assetFileDescritor=pContext.getAssets().openFd(MusicFactory.sAssetBasePath
                    + pAssetPath); mediaPlayer.setDataSource(assetFileDescritor.getFileDescriptor(),assetFileDescritor.getStartOffset(),assetFileDescritor.getLength()); 
mediaPlayer.prepare();
final Music music=new Music(pMusicManager,mediaPlayer);
pMusicManager.add(music);
return music;