检测android中的音频路径变化

时间:2012-12-13 13:14:26

标签: android audio media-player headset android-music-player

我正在开发Android媒体播放器应用程序(支持Android版本2.3 - 4.1)。我想检测音频路径转换,如扬声器到有线耳机或有线耳机到BT等。我需要在我的应用程序中对这些转换采取一些操作。那么在切换音频路径时Android是否提供任何单一方式(最好是广播接收器)?如果可能,我想避免单独检测有线耳机和BT耳机连接/断开。

我仍在适应Android并希望在这里提供一些帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在Jellybean上,稍后您可以使用MediaRouter课程获得所需信息。

MediaRouter类有一个名为getSystemAudioRoute()的隐藏方法,它返回一个RouteInfo对象。您应该能够通过在MediaRouter类上使用反射来掌握该方法 一旦你有了RouteInfo,就可以在其上调用getName(),它应该将当前音频路由的名称作为CharSequence返回。
请记住,这只是对音频路由的强烈暗示,因为由音频HAL决定应该路由它们的每种流类型。

在Jellybean之前的Android版本上,您可以收听相关意图的广播(ACTION_HEADSET_PLUGACTION_HDMI_AUDIO_PLUG等)。