gpt4 book ai didi

android - 无法播放 Assets "it is probably compressed"中的音频

转载 作者:行者123 更新时间:2023-11-30 04:43:29 28 4
gpt4 key购买 nike

您好,我正在编写一个 Android 应用程序,它将播放我随应用程序提供的一组音频文件,并允许用户创建和播放他们自己的音频。我遇到的问题是我不知道将文件存储在哪里。如果我将它们存储在外部(SD 卡)位置,我不确定在用户安装我的应用程序时如何将这些文件发送到用户的外部存储。我想我可以在 Assets 和外部自定义声音中加入一些。

当我尝试执行此操作时,出现以下错误:java.io.FileNotFoundException:无法将此文件作为文件描述符打开;它可能被压缩了

这是我的代码:

try {
Constants.mPlayer = new MediaPlayer();
AssetFileDescriptor afd = this.getApplicationContext().getAssets().openFd("songid.mus");
Constants.mPlayer.setDataSource(afd.getFileDescriptor());
Constants.mPlayer.prepare();
Constants.mPlayer.start();
} catch (Exception e) {
Log.e("", "prepare() failed", e);
}

有什么想法或建议吗?

谢谢!拉达

最佳答案

作为快速修复,您可以通过将文件名称更改为 songid.mp3 来获得 avoid compression

该帖子的作者还建议在命令行上将带有 -0 选项的扩展传递给 aapt:

First, you can give your asset file an extension in the list above. While this does not necessarily make sense, it can be an easy workaround if you don’t want to deal with aapt on the command line. The other option is to pass a specific extension to the -0 flag, such as -0 db, to disable compression for assets with that extension. You can pass the -0 flag multiple times, and each time with a separate extension, if you need more than one type to be uncompressed.

如果您喜欢冒险,您可以尝试将 aapt 替换为调用 aapt-0 mus 的脚本,如 this post

关于android - 无法播放 Assets "it is probably compressed"中的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5534212/

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