android - Android:将效果附加到 SoundPool 声音?
问题描述
我有一个 Android 应用程序,它使用 android.media.SoundPool 为用户播放音频提示。它按预期工作,但我希望能够为播放添加效果(通过 android.media.audiofx.AudioEffect 子类)。
我了解音频效果如何在(例如)MediaPlayer 上工作,但我不知道如何将它们与 SoundPool 一起使用。特别是,我不确定会话 ID 使用什么。(我碰巧在使用 Xamarin Android,因为......原因。所以我的例子看起来很奇怪——但我很高兴适应原生 Java 或 Kotlin 的答案!)
int session = ???; // What goes here?
var fx = new LoudnessEnhancer(session);
fx.SetTargetGain(2400);
fx.SetEnabled(true);
Pool.Play(soundID, 1.0F, 1.0F, 1, 0, 1.00F);
我尝试使用会话 ID 0,但是(在运行 Android 7.1.1 的 WT6000 上)它在 LoudnessEnhancer ctor 中崩溃:
Java.Lang.RuntimeException: Cannot initialize effect engine for type: fe3199be-aed0-413f-87bb-11260eb63cf1 Error: -3
(无论如何,我的理解是不推荐将效果应用于会话 ID 零)。
解决方案
推荐阅读
- python - 如何将包含两个封装元组的列表转换为列表?
- android - 如何在 Jetpack Compose 中将文本大小设置为比原始大小小 2-3 sp?
- python - 为什么它将第二个大写 T 识别为 0?
- c++ - 如何使用 for 循环遍历函数/类中的数组
- embedded - 这个 PIC16F877A HCSR04 示例有什么问题?
- solidity - LP Staking solidity 合约:我应该设置什么奖励率?
- php - 如何在 Yii 2.0.43 版和 bootstrap4 中启用 select2 小部件的搜索控件
- haskell - 该怎么做,我可以在 Haskell 中导入 Data.List.Split 模块
- r - 从邻接矩阵中快速计算任意一对节点之间的共享邻居数
- css - Bootstrap 网格系统 1 行两列成 2 行