2017-09-12

Unity - 안드로이드 기기 볼륨 조절

* 자세한 설명은 생략한다.

private static AndroidJavaObject _mainActivity = null;
private static AndroidJavaObject _androidAudioManager = null;
private static int _maxVolume = 0;

public static AndroidJavaObject GetMainActivity()
{
   if (_mainActivity == null)
{
var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
     _mainActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
}

return (_mainActivity);
}

public static AndroidJavaObject GetAndroidAudioManager()
{
if (_androidAudioManager == null)
  {
   _androidAudioManager = GetMainActivity().Call<AndroidJavaObject>("getSystemService", "audio");
_maxVolume = _androidAudioManager.Call<int>("getStreamMaxVolume", 3);
}
  return (_androidAudioManager);
}

// 볼륨 확인
public int GetVolume()
{
    AndroidJavaObject audioManager = GetAndroidAudioManager();
    return audioManager.Call<int>("getStreamVolume", 3);
}

// 볼륨 설정, 인자는 0부터 1 사이 값, _maxVolume과 비율로 설정해야 할 것으로 보임
public void SetVolume(float fVolume_)
{
  AndroidJavaObject audioManager = GetAndroidAudioManager();
audioManager.Call("setStreamVolume", 3, (int)fVolume_, 0);

}

* 출처: 회사 동료

댓글 없음:

댓글 쓰기