Files
PrinceOfGlory/Assets/代码/音量控制/VoiceVolumnWrapper.cs
kridoo 6e91a0c7f0 111
2025-09-15 17:32:08 +08:00

129 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}