2015-04-01 112 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

相關問題