Unity获取Android平台音量

img_d076919973785529c7df94c5cd384bbf.png
图片.png

https://www.cnblogs.com/Jason-c/p/7766021.html

http://blog.csdn.net/tdstds/article/details/25533291

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class AndroidAudio : MonoBehaviour
{
    private const string currentVolume = "getStreamVolume";         //当前音量
    private const string maxVolume = "getStreamMaxVolume";          //最大音量

    private const int STREAM_VOICE_CALL = 0;                        // 通话音量
    private const int STREAM_SYSTEM = 1;                            // 系统音量
    private const int STREAM_RING = 2;                              // 铃声音量
    private const int STREAM_MUSIC = 3;                             // 媒体音量
    private const int STREAM_ALARM = 4;                             // 警报音量 
    private const int STREAM_NOTIFICATION = 5;                      // 窗口顶部状态栏 Notification
    private const int STREAM_DTMF = 8;                              // 双音多频


    private const int ADJUST_LOWER = 9;                              // 双音多频




    private static AndroidJavaObject audioManager;


    //创建几个 "3D Text" 用于接收音量值
    public Text STREAM_VOICE_CALL_Text;
    public Text STREAM_SYSTEM_Text;
    public Text STREAM_RING_Text;
    public Text STREAM_MUSIC_Text;
    public Text STREAM_ALARM_Text;
    public Text STREAM_NOTIFICATION_Text;
    public Text STREAM_DTMF_Text;

    public Text MaxSTREAM_VOICE_CALL_Text;
    public Text MaxSTREAM_SYSTEM_Text;
    public Text MaxSTREAM_RING_Text;
    public Text MaxSTREAM_MUSIC_Text;
    public Text MaxSTREAM_ALARM_Text;
    public Text MaxSTREAM_NOTIFICATION_Text;
    public Text MaxSTREAM_DTMF_Text;
     

#if UNITY_ANDROID && !UNITY_EDITOR

    void Awake()
    {
        AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        audioManager = currentActivity.Call<AndroidJavaObject>("getSystemService", new AndroidJavaObject("java.lang.String", "audio"));
    }

    void Update()
    {
        STREAM_VOICE_CALL_Text.text = audioManager.Call<int>(currentVolume, STREAM_VOICE_CALL).ToString();
        STREAM_SYSTEM_Text.text = audioManager.Call<int>(currentVolume, STREAM_SYSTEM).ToString();
        STREAM_RING_Text.text = audioManager.Call<int>(currentVolume, STREAM_RING).ToString();
        STREAM_MUSIC_Text.text = audioManager.Call<int>(currentVolume, STREAM_MUSIC).ToString();
        STREAM_ALARM_Text.text = audioManager.Call<int>(currentVolume, STREAM_ALARM).ToString();
        STREAM_NOTIFICATION_Text.text = audioManager.Call<int>(currentVolume, STREAM_NOTIFICATION).ToString();
        STREAM_DTMF_Text.text = audioManager.Call<int>(currentVolume, STREAM_DTMF).ToString();

        MaxSTREAM_VOICE_CALL_Text.text = audioManager.Call<int>(maxVolume, STREAM_VOICE_CALL).ToString();
        MaxSTREAM_SYSTEM_Text.text = audioManager.Call<int>(maxVolume, STREAM_SYSTEM).ToString();
        MaxSTREAM_RING_Text.text = audioManager.Call<int>(maxVolume, STREAM_RING).ToString();
        MaxSTREAM_MUSIC_Text.text = audioManager.Call<int>(maxVolume, STREAM_MUSIC).ToString();
        MaxSTREAM_ALARM_Text.text = audioManager.Call<int>(maxVolume, STREAM_ALARM).ToString();
        MaxSTREAM_NOTIFICATION_Text.text = audioManager.Call<int>(maxVolume, STREAM_NOTIFICATION).ToString();
        MaxSTREAM_DTMF_Text.text = audioManager.Call<int>(maxVolume, STREAM_DTMF).ToString();

    }
#endif


}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值