【问题标题】:Cordova/PhoneGap Get File Path To Resource (Outside of Res Folder)Cordova/PhoneGap 获取资源的文件路径(在 Res 文件夹之外)
【发布时间】:2015-04-01 22:01:38
【问题描述】:

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

我们已经尝试了几十次尝试获取绝对文件路径,但都失败了。

例如

    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 对象吗?

【问题讨论】:

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


    【解决方案1】:

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

    几个问题:

    当你有 res->raw 文件夹时,为什么要将文件保存在 assets 文件夹中?

    如果你想从 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;
    

    【讨论】:

    • 这与 Cordova 如何设置项目有关。但是是的,使用 AssetFileDescriptor 是有效的(尽管 openFd 在文档中有 0 解释......谷歌多么有见地!)
    猜你喜欢
    • 1970-01-01
    • 2014-07-12
    • 2010-12-02
    • 2023-03-15
    • 2021-12-21
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多