Android - 在成就解锁时播放声音

Posted

技术标签:

【中文标题】Android - 在成就解锁时播放声音【英文标题】:Android - Play a sound on achievement unlocked 【发布时间】:2014-04-17 15:08:43 【问题描述】:

我有一个 android 游戏,我想在玩家解锁成就时播放声音, 但我似乎无法找到知道用户何时解锁成就的方法,因为我的大部分成就都是增量的我无法在客户端对其进行编码,唯一的方法是在 Google API 时调用一些回调显示成就框,但我在文档中找不到任何这些...我发现的唯一内容是:Integrating Google Play services achievements and android notifications

@Override
public void onAchievementUnlocked(final String id)

    //

但我不知道如何实现该方法或如何调用该方法,而且我在 Google 上没有运气

【问题讨论】:

你想播放声音吗? 是的,我想在成就解锁时播放声音,但问题不是播放声音,而是知道成就何时解锁。 【参考方案1】:

使用以下代码:

Games.Achievements.incrementImmediate(GoogleApiClient apiClient, String id, int numSteps).setResultCallback(new  ResultCallback<Achievements.UpdateAchievementResult>() 

            @Override
            public void onResult(UpdateAchievementResult result) 
                if (result.getStatus().getStatusCode() == GamesStatusCodes.STATUS_ACHIEVEMENT_UNLOCKED) 
                    // play your sound. achievement was unlocked
                
            

        );

这将使您的成就增加您想要的步数,完成后,它会return some of these codes. 如果代码是GamesStatusCodes.STATUS_ACHIEVEMENT_UNLOCKED,则意味着增加解锁成就,您可以播放声音。

【讨论】:

谢谢你,这为增量成就工作! @DarkW 你特别提到了增量成就,还有其他不适合你的成就吗? 是的,但我设法解决了它,因为我知道何时解锁它。谢谢! @Ogen 出于某种原因,这对我没有用。它总是返回状态码STATUS_OKSTATUS_NETWORK_ERROR_OPERATION_DEFERRED,但从不返回STATUS_ACHIEVEMENT_UNLOCKED,尽管我确信它已解锁,因为弹出的通知显示了这一点。知道为什么会这样吗? @HusseinElFeky 嗯,也许仔细检查一下你的成就实际上是一个增量。除此之外,可能 STATUS_OK 与 STATUS_ACHIEVEMENT_UNLOCKED 相同。 google成就api文档说STATUS_OK表示操作成功。也许它们是可以互换的。

以上是关于Android - 在成就解锁时播放声音的主要内容,如果未能解决你的问题,请参考以下文章

在 android 的 google chrome 上按顺序播放声音(考虑到播放声音的新限制)

我如何知道声音是不是在 android 中播放完毕?

Android SoundPool 在播放另一个声音之前不会第二次播放相同的声音

无法使用 JavaScript 在 iPhone 上播放声音,但可以在 Android 上播放

如何在Android中无间隙地循环播放声音?

为啥我的 SoundPool 声音第一次在 Android 上没有播放?