繁体   English   中英

触发 Google Assistant 命令时如何获取回调?

[英]How can I get the callback when Google Assistant command is triggered?

我有一个启用了 Exoplayer Media Session 的 Android cordova 应用程序,播放器在使用 Google 助理在 AndroidTV 上搜索后没有恢复。

因此,我尝试将playWhenReady保存在本地属性wasPlaying中的dispatchSetPlayWhenReady (打开 Google Assistant 时调用)上,以检查它是否应该在搜索后恢复(如果之前播放过)。

private class MyControlDispatcher implements ControlDispatcher {

        private boolean wasPlaying = false;

        @Override
        public boolean dispatchSetPlayWhenReady(Player player, boolean playWhenReady) {
            this.wasPlaying = player.getPlayWhenReady();
            player.setPlayWhenReady(playWhenReady);
            return true;
        }

        @Override
        public boolean dispatchSeekTo(Player player, int windowIndex, long positionMs) {
            if (this.wasPlaying) {
                player.setPlayWhenReady(true);
            }

            player.seekTo(windowIndex, positionMs);
            return true;
        }

        ...

    }
MyControlDispatcher myControlDispatcher = new MyControlDispatcher();
MediaSessionConnector mediaSessionConnector = new MediaSessionConnector(mediaSession);
mediaSessionConnector.setControlDispatcher(myControlDispatcher);

这解决了最初的问题,但是当用户暂停然后搜索时,我遇到了一个问题,两者都使用 Google Assistant。 当用户调用PAUSE命令(打开助手时在dispatchSetPlayWhenReady上)时,它会将wasPlaying保存为true ,并在不应该搜索时恢复。

所以基本上我需要以某种方式从谷歌助手获取PAUSE命令回调,以便我可以区分打开助手时调用的dispatchSetPlayWhenReady 并保证当用户调用PAUSE命令时将wasPlaying设置为false并防止其在搜索后恢复。

我想你可能会处理这些 MediaSessionCompat 的回调:

mMediaSessionCompat.setCallback(new MediaSessionCompat.Callback() {
            @Override
            public void onPrepare() {
                super.onPrepare();
            }

            @Override
            public void onPrepareFromSearch(String query, Bundle extras) {
                super.onPrepareFromSearch(query, extras);
            }

            @Override
            public void onPrepareFromMediaId(String mediaId, Bundle extras) {
                super.onPrepareFromMediaId(mediaId, extras);d
            }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM