2015-04-01 113 views
0

我们有一个Cordova/PhoneGap项目,我们正在尝试播放音频文件。Cordova/PhoneGap获取文件路径到资源(Res文件夹之外)

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

例如

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 /原始文件夹,并使用R.res.0来播放。

你知道我怎么能得到这个音频文件的绝对路径,所以我可以从它创建一个文件对象?

回答

1

看起来像你不能从资产创建文件对象。

几个问题:

为什么你保持资产的文件夹中的文件,当你有水库>原始文件夹?

如果你想从资产玩,你需要这样做

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; 
+0

它与科尔多瓦如何树立项目做。但是,使用AssetFileDescriptor是可行的(尽管openFd在文档中有0个解释... Google有多洞察力!) – Aggressor 2015-04-02 06:16:04

相关问题