【问题标题】:MediaPlayer - can't find path of sdcard on real deviceMediaPlayer - 在真实设备上找不到 sdcard 的路径
【发布时间】:2014-06-05 22:59:15
【问题描述】:

在我使用的代码中:

    mp = new MediaPlayer();
    String filePath = Environment.getExternalStorageDirectory().getPath() + "/mymusic/asong.mp3";

    try {
        mp.setDataSource(filePath);
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        mp.prepare();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mp.start();

并且在模拟器上可以正常播放 song.mp3。但是当我在我的真实设备上测试它时,它给出了一个错误 (-38, 0)。这意味着它找不到歌曲的路径。我连接 USB 数据线,转到我的电脑 GT-I8260 并将文件夹“mymusic”(包含 asong.mp3)粘贴到“Card”文件夹下(其中还放置了一个名为“LOST.DIR”的空文件夹)。但为什么它不起作用?非常感谢

【问题讨论】:

    标签: android media-player sd-card


    【解决方案1】:

    这是卡,但至少

    Environment.getExternalStorageDirectory() + "/mymusic/asong.mp3";
    

    够了。

    确保它存在,因为您之前可能没有创建过该文件夹。

    File f = new File(Environment.getExternalStorageDirectory() + "/mymusic");
    
    if (!f.exists()) { f.mkdirs(); }
    

    还要确保它在写入时没有挂载,因为它可能根本无法访问。

    同时重新验证您是否已设置清单权限以读取/写入外部存储

    【讨论】:

    • 对其进行了测试并给出了相同的错误。我通常在 AndroidManifest.xml 上使用 。它一直在模拟器上运行 =/
    • 您是否删除了 getPath()?你以前用过 mkDirs() 吗?你以前试过吗?
    • 我之前没有使用 mkDirs()。我尝试删除 getPat()h 和使用 mkDirs() 并给出相同的错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2017-08-14
    相关资源
    最近更新 更多