我们有一个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");
}
该文件存在并位于文件夹
中
如果我将文件移到/ res / raw文件夹并使用R.res.0
进行播放,则会找到(并播放)该文件。
你知道如何获得这个音频文件的绝对路径,以便我可以从中创建一个File对象吗?
答案 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;