前提・実現したいこと
AudioManagerのisMusicActiveで
自分の開発しているソフトが立ち上がった時に
そのandroid端末で音楽が鳴っているかを調べたいと思っています。
発生している問題・エラーメッセージ
isMusicActiveが必ずTrueを返してくる
該当のソースコード
C#
1const string AUDIO_SERVICE = "audio"; 2AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 3AndroidJavaObject unityActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity"); 4AndroidJavaObject unityContext = unityActivity.Call<AndroidJavaObject>("getApplicationContext"); 5 6bool retFlag; 7using (AndroidJavaObject audioManager = unityContext.Call<AndroidJavaObject>("getSystemService", AUDIO_SERVICE)) 8{ 9 retFlag = audioManager.Call<bool>("isMusicActive"); 10}
上記以外に試したこと
C#
1 AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 2 AndroidJavaObject unityActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity"); 3 AndroidJavaObject unityContext = unityActivity.Call<AndroidJavaObject>("getApplicationContext"); 4 5 AndroidJavaObject pluginClass = new AndroidJavaObject("com.example.soundmuteplugin.SoundMuteMethod"); 6 pluginClass.CallStatic("setSoundMuteContext", unityContext); 7 8 if(pluginClass.CallStatic<int>("isSoundMuteCheck2") == 0){ 9 bMuteFlag = true; 10 }
java
1 public static int isSoundMuteCheck2() { 2 audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); 3 4 if (audioManager.isMusicActive()) { 5 return 0; 6 } 7 return -1; 8 }
で実行しても同じ結果でした。
音楽を入れていない新しいプロジェクトをUnityで作成して実行しているので
自アプリで音楽が鳴っている状態はないです。
補足情報(FW/ツールのバージョンなど)
Unity5.6.4p4
AndroidStudio2.3.3
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー