如何将路由添加到音量控件

时间:2014-08-19 22:24:25

标签: android chromecast

我正在更新我们的应用以满足新的Google Chromecast guidlines。其中一个规格说明(使用硬件按钮更改接收器上的音量级别。视觉音量滑块(左侧有一个投射图标)应仅在按下硬件音量按钮时显示)。我假设他们的意思是这样的。

Volume Example

我似乎无法找到任何地方我可以添加设置标志来显示此路线或添加自定义路线的位置。我查看了Companion应用程序,但没有找到任何完成此操作的地方。任何帮助将不胜感激。感谢

以下是设置锁定屏幕控件的代码片段

 AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    ComponentName receiver = new ComponentName(context, RemoteControlReceiver.class.getName());
    audioManager.registerMediaButtonEventReceiver(receiver);

    Intent remoteControlIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
    remoteControlIntent.setComponent(receiver);
    PendingIntent mediaPendingIntent = PendingIntent.getBroadcast(context, 0, remoteControlIntent, 0);
    RemoteControlClient ctrlClient = new RemoteControlClient(mediaPendingIntent);
    ctrlClient.editMetadata(true)
            .putString(MediaMetadataRetriever.METADATA_KEY_TITLE, resources.getString(R.string.casting_episode, seriesItem.get().getName(), episodeItem.get().getEpisodeNumber()))
            .putString(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST, resources.getString(R.string.casting_to, selectedDevice.get().getFriendlyName()))
            .putBitmap(RemoteControlClient.MetadataEditor.BITMAP_KEY_ARTWORK, seriesImage.get())
            .apply();
            ctrlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_PLAYING);
    ctrlClient.setTransportControlFlags(RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE | RemoteControlClient.FLAG_KEY_MEDIA_STOP);
    audioManager.registerRemoteControlClient(ctrlClient);
    audioManager.setMode(AudioManager.ROUTE_ALL);
    remoteControlClient = Optional.of(ctrlClient);

1 个答案:

答案 0 :(得分:1)

注册RemoteControlClient后,您需要将其添加到MediaRouter

mMediaRouter.addRemoteControlClient(mRemoteControlClient);

https://developer.android.com/reference/android/support/v7/media/MediaRouter.html#addRemoteControlClient(java.lang.Object)