Android 以编程方式打开媒体输出选择器

Android 以编程方式打开媒体输出选择器,android,android-mediaplayer,android-audiomanager,Android,Android Mediaplayer,Android Audiomanager,在Android 9中,媒体输出控件被添加到卷选择对话框中 我想在我的应用程序中有一个按钮,可以打开这些系统媒体输出控件,以便用户可以选择在哪里播放音频 我在:,和中找不到任何关于此的信息 您正在寻找MediaRouter API public class MediaRouterPlaybackActivity extends AppCompatActivity { private MediaRouteSelector mSelector; @Override protected

在Android 9中,媒体输出控件被添加到卷选择对话框中

我想在我的应用程序中有一个按钮,可以打开这些系统媒体输出控件,以便用户可以选择在哪里播放音频

我在:,和中找不到任何关于此的信息


您正在寻找MediaRouter API

public class MediaRouterPlaybackActivity extends AppCompatActivity {
  private MediaRouteSelector mSelector;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      // Create a route selector for the type of routes your app supports.
      mSelector = new MediaRouteSelector.Builder()
              // These are the framework-supported intents
              .addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
              .addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
              .build();
  }
}
供进一步参考:
另外,请查看创建MediaRouteSelector一节。

我也做了一些研究,所以我知道Android Pie能够做到这一点,但他们还没有为我们的开发者提供一种方法(至少我还没有找到一种方法)。MediaRouterSelector中的“现场音频”类别也仅用于辅助输出;你可以在开发者的网站上阅读。因此,如果必须这样做,我认为现在唯一可以这样做的方法是以编程方式进行变通:

  • 断开当前设备(此步骤的重要性取决于设备;我必须在基本手机上执行此操作)
  • 使用BluetoothAdapter.getBondedDevices()获取配对设备的列表
  • 连接到您想要的

我对
MediaRouter
的理解是,它用于向智能电视、汽车等设备播放(播放)媒体(带音频的视频)。我从谷歌运行了两个示例项目,但无法在耳机或内部扬声器之间切换。我甚至把你上面写的
MediaRouteSelector
放在上面,这没有什么区别。我希望能够选择播放音频的位置:内置麦克风、有线耳机或蓝牙耳机