2010-11-09 101 views
0

我有5个mp3文件存储在资产文件夹中。这些文件都是25 KB。
我使用加载文件:Android - 从资产文件夹播放声音的问题

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

每当我试图播放的文件,声音都搞砸像他们混什么的。 我已经zipaligned该应用程序已经但没有结果。
对此问题有帮助吗?在此先感谢

回答

2

一些研究,我发现自己awnser后。问题是我使用下面的方法来设置MediaPlayer的数据源:

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

WICH仅仅是setDataSource(fd, 0, 0x7ffffffffffffffL);一个呼叫,传递min的偏移和该任意长度,导致声音被播放全部混合。
使用以下代码时,一切正常:

AssetFileDescriptor descriptor = manager.openFd(fileName); 
long start = descriptor.getStartOffset(); 
long end = descriptor.getLength(); 
player.setDataSource(descriptor.getFileDescriptor(), start,end); 
0
  1. 为开始尝试消除一个潜在的问题:比较inputStream和原始文件。

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

1

您也可以尝试从资源/原材料文件夹播放他们:

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