我正在开发Android媒体播放器应用程序(需要支持Android ver 2.3-4.1)。我想检测音频路径转换,例如扬声器到有线耳机或有线耳机到BT等。我需要在应用程序中对这些转换采取一些措施。那么,在切换音频路径时,Android是否提供任何单一方式(最好是广播接收器)?如果可能,我要避免分别检测有线耳机和BT耳机的连接/断开。
我仍在适应Android,并希望在此寻求帮助。
提前致谢。
最佳答案
在Jellybean及更高版本上,您可以使用MediaRouter类获得所需的信息。
MediaRouter类具有一个名为getSystemAudioRoute()
的隐藏方法,该方法返回RouteInfo对象。您应该可以通过在MediaRouter类上使用反射来掌握该方法。
一旦有了RouteInfo,就可以在其上调用getName()
,它应该以CharSequence的形式返回当前音频路径的名称。
请记住,这只是音频路由的强大提示,因为由音频HAL来决定每种流类型的路由位置。
在早于Jellybean的Android版本上,您可以收听相关意图的广播(ACTION_HEADSET_PLUG
,ACTION_HDMI_AUDIO_PLUG
等)。
关于android - 在Android中检测音频路径更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13860610/