Android - 从资产文件夹播放声音时出现问题
Posted
技术标签:
【中文标题】Android - 从资产文件夹播放声音时出现问题【英文标题】:Android - Problem playing sounds from assets folder 【发布时间】:2010-11-09 13:22:33 【问题描述】:我在 assets 文件夹中存储了 5 个 mp3 文件。这些文件都是 25 KB。 我使用以下方式加载文件:
manager = context.getAssets();
this.inputStream = manager.openFd(fileName).createInputStream();
每当我尝试播放文件时,声音都像混音一样乱七八糟。 我已经对应用进行了压缩对齐,但没有结果。 关于这个问题有帮助吗?提前致谢
【问题讨论】:
【参考方案1】:经过一番研究,我自己找到了遮阳篷。问题是我使用以下方法来设置 MediaPlayer 的数据源:
inputStream = manager.openFd(fileName).createInputStream();
player.setDataSource(inputStream.getFD());
Wich 只是对setDataSource(fd, 0, 0x7ffffffffffffffL);
的调用,传递了最小偏移量和这个任意长度,导致声音全部混合播放。
使用以下代码时一切正常:
AssetFileDescriptor descriptor = manager.openFd(fileName);
long start = descriptor.getStartOffset();
long end = descriptor.getLength();
player.setDataSource(descriptor.getFileDescriptor(), start,end);
【讨论】:
【参考方案2】:您也可以尝试从 res/raw 文件夹中播放它们:
MediaPlayer p=MediaPlayer.create(this, R.raw.soundid);
p.start();
【讨论】:
【参考方案3】:首先尝试消除一个潜在问题:将 inputStream 与原始文件进行比较。
尝试直接打开和播放文件。
【讨论】:
以上是关于Android - 从资产文件夹播放声音时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Android MediaPlayer 播放声音时出现问题