我的游戏有游戏内配乐,如果用户通过 Android 或 iOS 上的媒体应用程序播放自己的音乐,我想暂停音乐。
有没有一种方法可以足够有效地在 update() 函数中运行?
提前致谢!
您可以检查音乐是否按照以下描述播放this https://stackoverflow.com/a/7324006/3785314 post.
AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
if(manager.isMusicActive())
{
// do something - or do it not
}
将其包装在 Java 中的类中,然后借助以下命令从 C# 中调用它:AndroidJavaClass
API.
但这需要Java。您可以将该代码转换为 C#,而无需使用 Java。获取 UnityPlayerPlayer、Activity,然后获取 Context。其余的可以通过以下方式处理AndroidJavaClass
.
这是移植的 C# 版本,不需要 Java 插件。
bool isMusicPlaying()
{
const string AUDIO_SERVICE = "audio";
AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject unityActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject unityContext = unityActivity.Call<AndroidJavaObject>("getApplicationContext");
bool mIsPlaying;
using (AndroidJavaObject audioManager = unityContext.Call<AndroidJavaObject>("getSystemService", AUDIO_SERVICE))
{
mIsPlaying = audioManager.Call<bool>("isMusicActive");
}
return mIsPlaying;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)