Android - 从资源文件夹播放声音时出现问题

时间:2010-11-09 13:22:33

标签: java android assets

我有5个mp3文件存储在assets文件夹中。这些文件都是25 KB 我使用以下方法加载文件:

manager = context.getAssets();
this.inputStream = manager.openFd(fileName).createInputStream();

每当我尝试播放这些文件时,声音都会混淆起来,就像它们混合在一起一样。 我已经对应用程序进行了拉链,但没有结果 anny帮助解决这个问题?提前致谢

3 个答案:

答案 0 :(得分:2)

经过一些研究,我发现了自己的灵感。问题是我使用以下方法设置MediaPlayer的数据源:

inputStream = manager.openFd(fileName).createInputStream();    
player.setDataSource(inputStream.getFD());

这只是对setDataSource(fd, 0, 0x7ffffffffffffffL);的调用,传递最小偏移量和这个任意长度,导致声音全部混合播放。
使用以下代码时一切正常:

AssetFileDescriptor descriptor = manager.openFd(fileName);
long start = descriptor.getStartOffset();
long end = descriptor.getLength();
player.setDataSource(descriptor.getFileDescriptor(), start,end);

答案 1 :(得分:1)

您也可以尝试从res / raw文件夹中播放它们:

MediaPlayer p=MediaPlayer.create(this, R.raw.soundid);
p.start();

答案 2 :(得分:0)

  1. 首先尝试消除一个潜在问题:将inputStream与原始文件进行比较。

  2. 尝试直接打开和播放文件。