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

时间:2018-10-08 17:13:40

标签: android android-mediaplayer android-audiomanager

在Android 9中,媒体输出控件已添加到音量选择对话框中。

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

Android 9 features and APIsBehavior changes: apps targeting API level 28+Behavior changes: all apps

中我什么都找不到

enter image description here

2 个答案:

答案 0 :(得分:0)

您正在寻找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();
  }
}

进一步参考:https://developer.android.com/guide/topics/media/mediarouter#java 还要检查Create a MediaRouteSelector部分。

答案 1 :(得分:0)

我也对此进行了一些研究,所以我知道Android Pie可以做到这一点,但是他们还没有为我们的开发人员提供实现此目的的方法(至少我还没有找到方法)。 MediaRouterSelector中的CATEGORY_LIVE_AUDIO也仅用于辅助输出。您可以在开发者网站上阅读。因此,如果您必须这样做,那么我认为现在唯一的方法就是以编程方式进行解决:

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