栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有AudioEffect的Android MediaPlayer:出现错误(-22,0)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有AudioEffect的Android MediaPlayer:出现错误(-22,0)

好吧,我终于开始工作了。我重新阅读了文档,使用了代码,突然一切正常。这些是我的发现,以防将来对任何人有帮助。

对于PresetReverb

在预置混响文档中

PresetReverb是输出混合辅助效果, 应在音频会话0上创建
为了将MediaPlayer或AudioTrack馈入此效果,必须将它们明确地附加到该效果上,并且必须指定发送级别
。将其附加到MediaPlayer或AudioTrack时,请使用getId()方法返回的效果ID来指定此特定效果。

说的是

PresetReverb pReverb = new PresetReverb(0,player.getAudioSessionId()); <== error

不被允许。您只能使用全局音频会话0来构造PresetReverb。

PresetReverb pReverb  = new PresetReverb(1,0); <== correct

现在,我们可以使用MediaPlayer或AudioTrack将其附加到

player.attachAuxEffect(pReverb.getId());player.setAuxEffectSendLevel(1.0f);

我完整的PresetReverb代码是

PresetReverb pReverb    = new PresetReverb(1,0);player.attachAuxEffect(pReverb.getId());pReverb.setPreset(PresetReverb.PRESET_LARGEROOM);pReverb.setEnabled(true);player.setAuxEffectSendLevel(1.0f);

注意: 如果您正在寻找良好的混响效果或回声,最好使用EnvironmentalReverb。我对PresetReverb的表现有些失望。

在环境混响的情况下

从EnvironmentalReverb的文档中

EnvironmentalReverb是输出混合辅助效果,应在音频会话0上创建。为了将MediaPlayer或AudioTrack馈入该效果,必须将它们明确地附加到该效果上,并且必须指定发送级别
。将其附加到MediaPlayer或AudioTrack时,请使用getId()方法返回的效果ID来指定此特定效果。

就像PresetReverb一样,但是当我写的时候

Log.e("DEBUG","sessionId : " + player.getAudioSessionId()); <== printed "454"EnvironmentalReverb  eReverb   = new EnvironmentalReverb(0,player.getAudioSessionId()); //should be error as per documentation//player.attachAuxEffect(eReverb.getId());   <== Yes this one was commented

没有错误,我得到了很好的混响效果和回声。因此,这似乎是文档中的错误。同样,当我们将播放器的会话ID传递给构造函数(player.getAudioSessionId())时,似乎不需要将播放器与EnvironmentalReverb实例相连接。奇怪..

为了完整起见,这也正如文档所述那样工作。

EnvironmentalReverb  eReverb   = new EnvironmentalReverb(0,0); player.attachAuxEffect(eReverb.getId());     <== No,not comment this one

对于其他AudioEffect儿童(均衡器,BassBoost,虚拟器)

这些不是我问题的一部分。但是对于将来看到这种情况的每个人来说..

注意:不建议使用会话0将插入效果(均衡器,低音增强,虚拟器)附加到全局音频输出混合。

请参阅文件

关于错误(-22,0)

好吧,可以说这不是信息错误消息。我不知道为什么当我们弄乱音频会话时会出现 无效的许可证错误
。无论如何,当我更正音频会话参数时,此错误就消失了。这是我知道的全部。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570061.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号