gpt4 book ai didi

java - 如何用MediaPlayer调用/data/data中的文件

转载 作者:行者123 更新时间:2023-12-02 00:17:36 25 4
gpt4 key购买 nike

我希望 Android 在/data/data/com.example.myapp/中播放一首名为 test3.mid 的歌曲

我需要将其放在子目录中吗?或者我以错误的方式调用 setDataSource ?应用程序崩溃并给我一个 NullPointerException。

try {
mediaPlayer.setDataSource("file://data/data/com.example.optimuse/test3");
} catch (Exception e1) {
e1.printStackTrace();
}
try {
mediaPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

最佳答案

我明白了。我把它放在缓存文件夹中,现在可以使用了。另外,我愚蠢地忘记了新命令(因为 create() 似乎不需要它)。

我的工作代码:

我将文件存储在缓存目录中,这有效!

File output = new File(getCacheDir() + "/exampleout.mid");

然后调用文件:

    String filePath = null;
File file = null;
FileInputStream inputStream = null;
try {
filePath = getCacheDir() + "/exampleout.mid";
file = new File(filePath);

inputStream = new FileInputStream(file);
if(inputStream.getFD().valid())
{
System.out.println("Valid!");
}
} catch (Exception e1) {
e1.printStackTrace();
System.exit(-1);
}

try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(inputStream.getFD());
inputStream.close();
} catch (Exception e1) {
e1.printStackTrace();
System.exit(-1);
}

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

关于java - 如何用MediaPlayer调用/data/data中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com