检测 Android/iOS 设备是不是已经通过 Unity3D 播放音乐

Posted

技术标签:

【中文标题】检测 Android/iOS 设备是不是已经通过 Unity3D 播放音乐【英文标题】:Detecting if Android/iOS device is already playing music through Unity3D检测 Android/iOS 设备是否已经通过 Unity3D 播放音乐 【发布时间】:2015-06-15 20:54:40 【问题描述】:

我正在开发一个统一的游戏,如果用户在游戏启动时已经在播放一些音乐,我想停止游戏内的音乐。有没有办法检测音乐是否已经在设备上播放?

谢谢!

编辑--- 我写了一个原生插件来测试设备是否正在播放。但是统一所做的是我认为它可以控制发言者。因此,即使没有播放任何类型的音乐,本机代码也将始终返回 true。

我制作了一个包含空场景且与音频无关的统一项目。我测试了插件,它仍然返回 true。我刚刚制作了一个简单的原生 android 应用程序并测试了代码,我得到了正确的真假。因此,即使没有播放任何内容,Unity 也基本上会使用扬声器。

有解决办法吗?

非常感谢您的帮助。

【问题讨论】:

如果 Unity 本身不会告诉你,至少可以编写一个原生插件,你可以调用它来查找。或者也许你可以得到一个别人已经写的插件。 通过原生插件肯定可以。只是想知道是否有适用于它的 Unity API。 这就是为什么我把它只是一个评论,而不是一个答案。 :) 【参考方案1】:

回答您的评论:

通过本机插件肯定可以。只是想知道是否有适用于它的 Unity API。

Unity 没有任何内置方法来检查这一点。

【讨论】:

我写了一个原生插件来测试设备是否正在播放。但是统一所做的是我认为它可以控制发言者。因此,即使没有播放任何类型的音乐,本机代码也将始终返回 true。我制作了一个带有空场景且与音频无关的统一项目。我测试了插件,它仍然返回 true。我刚刚制作了一个简单的原生 android 应用程序并测试了代码,我得到了正确的真假。因此,即使没有播放任何内容,Unity 也基本上会使用扬声器。有解决办法吗?

以上是关于检测 Android/iOS 设备是不是已经通过 Unity3D 播放音乐的主要内容,如果未能解决你的问题,请参考以下文章

通过 JavaScript 检测用户设备是不是使用移动操作系统

判断设备(PC,安Android,iOS)

通过cordova访问android/ios/win设备摄像头

验证移动设备

如何在不使用 TeraWurfl 的情况下检测网站是不是正在通过移动设备或计算机使用 [重复]

Android/iOS:如何使用 SAML 协议通过 Azure AD 为移动设备提供 SSO