2015-04-01 6 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 для Сыграй.

Знаете ли вы, как я могу получить абсолютный путь к этому аудиофайлу, чтобы я мог создать объект File из него?

ответ

1

Похоже, вы не можете создать файл-объект из Assets.

Несколько вопросов:

Почему вы храните файл в папке активов, когда у вас есть res-> сырец папки?

Если вы хотите играть от активов, что вам нужно сделать это

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