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 播放声音时出现问题

同时播放两个 AVPlayer 音频文件时出现音频故障

Cordova Local Notification 为 iOS 和 Android 播放本地声音

从资产加载和播放 soundpool

在 Mac 上使用 OpenAL 播放音频时出现随机噪音

我正在尝试显示文本,单击时播放音频,当声音结束时出现新文本,单击时播放新音频