alp*_*tis 5 android android-audiomanager
我正在开发2个需要协同工作的VoIP应用程序; 一个是软电话应用程序(App A),它使用各种音频模式,如RINGTONE,IN_COMMUNICATION等.另一个应用程序(App B)需要音频模式NORMAL.我尝试确保彼此玩得很好,所以当软电话App A完成一个电话时,它会将音频模式恢复为NORMAL.同样,如果App B需要在App A正在做的事情中间运行,它会保存它找到的音频模式并在完成后恢复.
例如,对于入站呼叫,App A可能会更改音频模式,如下所示:
如果App B在连接呼叫时需要做某事(上面的步骤2),它会
两个应用程序都使用其应用程序上下文获取Android AudioManager.
我遇到的问题是,一旦App B完成上述步骤,App A就会在呼叫终止后尝试将音频模式恢复为NORMAL.
myAudioManagerReference.setMode(AudioManager.MODE_NORMAL);
if (myAudioManagerReference.getMode() != AudioManager.MODE_NORMAL)
Log.w(CLASSTAG, "failure to set audio mode to MODE_NORMAL);
Run Code Online (Sandbox Code Playgroud)
我的App B是否可以对AudioManager模式进行某种锁定?或者更改了App A的权限,使其无法将模式更改回NORMAL?我发现一旦我退出App B,App A就可以成功地将模式更改为NORMAL.
这看起来很可能是固件问题。我在该设备(工业移动设备)上看到来自 ALSA 驱动程序的可疑日志,看起来该驱动程序有时可能使用错误的 PID 来更改音频模式。我也无法在任何其他设备上重现相同的问题,包括来自同一制造商的一些设备。
不幸的是,我还没有得到制造商(和 ALSA 驱动程序编写者)的确认,情况确实如此。
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |