当前位置: 首页 > news >正文

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


}

相关文章:

  • 人工智能技术在中小学课堂中的应用
  • 设计模式入门:工厂方法模式
  • 作为app运营,你需要get的技能有哪些? 总结七项APP运营技能
  • Java分布式锁之数据库实现
  • Netty(二):数据在ChannelPipeline中的流经
  • 771. Jewels and Stones - LeetCode
  • 主磁盘分区和逻辑磁盘分区的区别是什么?
  • Android tab页制作
  • 纯前端表格技术应用研讨会——华为供应链专场
  • PHP运算优先级导致的and绕过
  • oracle查看某表字段类型
  • python 中的 %s%用法
  • 一些css基础学习笔记
  • android drawable drawable-xhdpi 细节
  • 比特币区块结构解析
  • 收藏网友的 源程序下载网
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  •  D - 粉碎叛乱F - 其他起义
  • ERLANG 网工修炼笔记 ---- UDP
  • express + mock 让前后台并行开发
  • Java|序列化异常StreamCorruptedException的解决方法
  • leetcode-27. Remove Element
  • Making An Indicator With Pure CSS
  • PHP面试之三:MySQL数据库
  • 安装python包到指定虚拟环境
  • 不上全站https的网站你们就等着被恶心死吧
  • 基于Android乐音识别(2)
  • 如何使用 JavaScript 解析 URL
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • UI设计初学者应该如何入门?
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 数据库巡检项
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #微信小程序(布局、渲染层基础知识)
  • (1)Nginx简介和安装教程
  • (2020)Java后端开发----(面试题和笔试题)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (function(){})()的分步解析
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (排序详解之 堆排序)
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转) Face-Resources
  • (转)scrum常见工具列表
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net 生成二级域名
  • .net 使用ajax控件后如何调用前端脚本
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net连接MySQL的方法
  • .NET业务框架的构建
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @Service注解让spring找到你的Service bean
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [20150707]外部表与rowid.txt
  • [8481302]博弈论 斯坦福game theory stanford week 1