首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么onCompletionListener会立即用附加的AudioEffect开火?

为什么onCompletionListener会立即用附加的AudioEffect开火?
EN

Stack Overflow用户
提问于 2016-02-12 05:16:47
回答 1查看 37关注 0票数 0

当我添加代码附加BassBoost效果时,就会立即触发my MediaPlayeronCompletionListener。以下是相关代码:

代码语言:javascript
复制
player.setDataSource(context, Uri.parse(song.filename));

// everything is fine if I comment out these 3 lines
BassBoost boost = new BassBoost(0, player.getAudioSessionId());
boost.setStrength((short) 1000);
player.attachAuxEffect(boost.getId());

player.prepare();
player.start();

我试验了这个特定代码的顺序,但没有结果。最后,我在完成处理程序中记录了getCurrentPosition()getDuration()值,您不会知道这一点:它们都是零!

我目前的想法是,附加效果需要异步准备,但我还没有找到任何进一步的线索。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-25 01:49:12

我从另一个问题中找到了答案。如果在效果构造函数中指定音频会话,然后调用attachAuxEffect,则会失败。这样做是可行的:

代码语言:javascript
复制
BassBoost boost = new BassBoost(0, player.getAudioSessionId());
boost.setStrength((short) 1000);
// ALREADY ATTACHED IN CONSTRUCTOR ... player.attachAuxEffect(boost.getId());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35355295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档