可以播放缓存的音频文件Android Java

发布于 2025-01-31 08:35:17 字数 864 浏览 4 评论 0原文

我想下载,缓存并从网络播放音频文件。我设法下载并将其保存到context.getCachedir()。绝对路径为“/data/user/0/org.kimp.mustep/cache/floor_01/entrance_ru.mp3”。

当我尝试使用MediaPlayer的对象播放它时,应用程序会崩溃。

我尝试这样做有一些方法:

MediaPlayer player = new MediaPlayer();
FileInputStream inputStream = new FileInputStream(target);
player.setDataSource(inputStream.getFD());
inputStream.close();
player.setAudioAttributes(new AudioAttributes.Builder()
    .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
    .build());
player.prepare();
player.start();

MediaPlayer player = new MediaPlayer();
player.setDataSource(activity.getBaseContext(), Uri.fromFile(target));
player.prepare();
player.start();

target 是带有mp3的文件对象

,每次我都有错误:

error (1, -2147483648)
java.io.IOException: Prepare failed.: status=0x1

I want to download, cache and play an audio file from the network. I managed to download and save it to the context.getCacheDir(). Absolute path is "/data/user/0/org.kimp.mustep/cache/floor_01/entrance_ru.mp3".

When I try to play it with a MediaPlayer's object the app crashes.

There is some ways I tried to do that:

MediaPlayer player = new MediaPlayer();
FileInputStream inputStream = new FileInputStream(target);
player.setDataSource(inputStream.getFD());
inputStream.close();
player.setAudioAttributes(new AudioAttributes.Builder()
    .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
    .build());
player.prepare();
player.start();

and

MediaPlayer player = new MediaPlayer();
player.setDataSource(activity.getBaseContext(), Uri.fromFile(target));
player.prepare();
player.start();

target is a File object with the mp3

And every time I have an error:

error (1, -2147483648)
java.io.IOException: Prepare failed.: status=0x1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文