我们如何以编程方式在 Android Q OS 中实现可搜索的进度条?

Posted

技术标签:

【中文标题】我们如何以编程方式在 Android Q OS 中实现可搜索的进度条?【英文标题】:How can we achieve seekable progress bar in Android Q OS programatically? 【发布时间】:2019-10-28 17:59:36 【问题描述】:

android Q Beta 2 为音乐通知添加了一个可搜索的进度条,那么我们如何在 android Q OS 中使用 spotify 和 soundcloud 进行编程呢?

【问题讨论】:

【参考方案1】:

您需要向媒体会话添加元数据,例如持续时间和播放状态:

    MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
    builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, currentEpisode.getPodcast().getArtistName());
    builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, currentEpisode.getPodcast().getCollectionName());
    builder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, currentEpisode.getTitle());
    builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, currentEpisode.getImageUrl());
    builder.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, currentEpisode.id);
    builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, player.getDuration());
    mediaSessionCompat.setMetadata(builder.build());

    PlaybackStateCompat playbackStateCompat = new PlaybackStateCompat.Builder()
            .setActions(
                    PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PLAY_PAUSE |
                            PlaybackStateCompat.ACTION_FAST_FORWARD | PlaybackStateCompat.ACTION_REWIND |
                            PlaybackStateCompat.ACTION_PLAY_FROM_MEDIA_ID | PlaybackStateCompat.ACTION_PAUSE |
                            PlaybackStateCompat.ACTION_SKIP_TO_NEXT | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS | PlaybackStateCompat.ACTION_SEEK_TO)
            .setState(state, position, speedRate)
            .build();

    mediaSessionCompat.setPlaybackState(playbackStateCompat);

PlaybackStateCompat.ACTION_SEEK_TO 给你额外的搜索能力。

【讨论】:

以上是关于我们如何以编程方式在 Android Q OS 中实现可搜索的进度条?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式退出android应用程序

如何以编程方式获取用户在 Android OS 配置上设置的数据使用限制?

如何在android中以编程方式检测MIUI ROM?

如何以编程方式在 Android 上截屏?

以编程方式检查 Fire OS 版本

如何以编程方式在 mac os x 中禁用/断开以太网适配器?