有没有人在 Jelly Bean 中遇到流独奏无法正常工作的问题?
这在包括 ICS 在内的所有 Android 版本中都可以正常工作:
audioManager.setStreamSolo(AudioManager.STREAM_SYSTEM, true);
...
audioManager.setStreamSolo(AudioManager.STREAM_SYSTEM, false);
这成功地独奏了我用于我的应用程序警报的系统流,并在用户正在播放某些东西时使音乐流静音。然后unsoloed恢复正常。但是现在在 Jelly Bean 上,独奏也会使系统流本身静音!
这是来自 Android 2.3 模拟器的调试日志,其中包含独奏和取消独奏后的所有流卷:
07-20 09:02:45.948: E/solo(331): Alarm: 6
07-20 09:02:45.988: E/solo(331): Dtmf: 12
07-20 09:02:45.988: E/solo(331): Music: 0
07-20 09:02:45.988: E/solo(331): Notification: 0
07-20 09:02:45.988: E/solo(331): Ring: 0
07-20 09:02:45.988: E/solo(331): System: 7
07-20 09:02:46.000: E/solo(331): Call: 4
07-20 09:02:50.248: E/unsolo(331): Alarm: 6
07-20 09:02:50.258: E/unsolo(331): Dtmf: 12
07-20 09:02:50.258: E/unsolo(331): Music: 11
07-20 09:02:50.258: E/unsolo(331): Notification: 5
07-20 09:02:50.258: E/unsolo(331): Ring: 5
07-20 09:02:50.258: E/unsolo(331): System: 7
07-20 09:02:50.258: E/unsolo(331): Call: 4
所以一切都很好,系统流保持开启,音乐停止。这是Android 4.1:
07-20 09:06:15.483: E/solo(1623): Alarm: 6
07-20 09:06:15.483: E/solo(1623): Dtmf: 0
07-20 09:06:15.493: E/solo(1623): Music: 0
07-20 09:06:15.493: E/solo(1623): Notification: 0
07-20 09:06:15.493: E/solo(1623): Ring: 0
07-20 09:06:15.524: E/solo(1623): System: 0
07-20 09:06:15.544: E/solo(1623): Call: 4
07-20 09:06:19.775: E/unsolo(1623): Alarm: 6
07-20 09:06:19.784: E/unsolo(1623): Dtmf: 15
07-20 09:06:19.794: E/unsolo(1623): Music: 13
07-20 09:06:19.794: E/unsolo(1623): Notification: 7
07-20 09:06:19.803: E/unsolo(1623): Ring: 7
07-20 09:06:19.803: E/unsolo(1623): System: 7
07-20 09:06:19.803: E/unsolo(1623): Call: 4
Jelly Bean 将更多流静音,包括应该独奏的系统流。