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

时间:2015-04-01 22:01:39

标签: java android cordova phonegap-plugins absolute-path

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

我们已尝试过几十次尝试获取绝对文件路径并失败。

e.g。

    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");
           }

该文件存在并位于文件夹

enter image description here

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

你知道如何获得这个音频文件的绝对路径,以便我可以从中创建一个File对象吗?

1 个答案:

答案 0 :(得分:1)

看起来您无法从资产中创建文件对象。

几个问题:

当你有res-> raw文件夹时,为什么要将文件保存在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;
相关问题