129 lines
2.8 KiB
C#
129 lines
2.8 KiB
C#
using System;
|
||
using UnityEngine;
|
||
|
||
namespace AndroidWrapper
|
||
{
|
||
/// <summary>
|
||
/// 音量相关封装
|
||
/// 使用说明:
|
||
/// 1、首先初始化 Init,设置监听事件
|
||
/// 2、后面即可获取设置音量值
|
||
/// 3、监听音量变化
|
||
/// </summary>
|
||
public class VoiceVolumnWrapper : MonoSingleton<VoiceVolumnWrapper>
|
||
{
|
||
|
||
/// <summary>
|
||
/// 初始化
|
||
/// </summary>
|
||
/// <param name="VoiceVolumnChangedListener"></param>
|
||
public void Init(Action<int> VoiceVolumnChangedListener)
|
||
{
|
||
#if UNITY_EDITOR
|
||
#else
|
||
|
||
|
||
MAndroidJavaObject.Call("Init",new VoiceVolumnChangedIntereface(VoiceVolumnChangedListener));
|
||
registerVolumeReceiver();
|
||
#endif
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取音量的当前值
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetMusicVoiceCurrentValue()
|
||
{
|
||
|
||
return MAndroidJavaObject.Call<int>("GetMusicVoiceCurrentValue");
|
||
}
|
||
|
||
/// <summary>
|
||
/// 设置音量值
|
||
/// </summary>
|
||
/// <param name="value"></param>
|
||
public void SetMusicVoiceVolumn(int value)
|
||
{
|
||
|
||
MAndroidJavaObject.Call("SetMusicVoiceVolumn", value);
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取音量的最大值
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetMusicVoiceMax()
|
||
{
|
||
|
||
return MAndroidJavaObject.Call<int>("GetMusicVoiceMax");
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取音量的最小值
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetMusicVoiceMin()
|
||
{
|
||
|
||
return MAndroidJavaObject.Call<int>("GetMusicVoiceMin");
|
||
}
|
||
|
||
|
||
|
||
#region 私有方法
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 注册音量监听
|
||
/// </summary>
|
||
void registerVolumeReceiver()
|
||
{
|
||
MAndroidJavaObject.Call("registerVolumeReceiver");
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消注册音量监听
|
||
/// </summary>
|
||
public void unregisterVolumeReceiver()
|
||
{
|
||
MAndroidJavaObject.Call("unregisterVolumeReceiver");
|
||
}
|
||
|
||
|
||
protected override void OnDestroy()
|
||
{
|
||
unregisterVolumeReceiver();
|
||
base.OnDestroy();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 私有变量
|
||
|
||
/// <summary>
|
||
/// 音量变化委托事件
|
||
/// </summary>
|
||
Action<int> _mVoiceVolumnChanged;
|
||
|
||
AndroidJavaObject _mAndroidJavaObject;
|
||
|
||
public AndroidJavaObject MAndroidJavaObject
|
||
{
|
||
get
|
||
{
|
||
if (_mAndroidJavaObject == null)
|
||
{
|
||
_mAndroidJavaObject = new AndroidJavaObject("com.example.voicevolumnwrapper.VoiceVolumnUtil");
|
||
}
|
||
|
||
return _mAndroidJavaObject;
|
||
}
|
||
}
|
||
|
||
|
||
#endregion
|
||
|
||
}
|
||
} |