Android开发之调整手机音量

DELPHI 安卓开发小手段 本文主要记录一些安卓开发时,使用的小功能,我称之为小手段,算是一个学习笔记吧,而本文中关于一些公共的功能,我仅在第一次需要时编写,后面将不再重复,比如动态权限申请之类的。{$ENDIF}目录前言如何调用手机震动功能申请震动权限建立震动函数调用震动函数如何调整手机音量如何关闭EDIT虚拟键盘动态控件属性修改无边窗体如何拖动。 阅读详情

调整手机的各种音量可以通过AudioManager这个类来操作

注:安卓手机各种音量的最大数值不一样,请通过下面具体的方法获取最大音量值。

涉及的参数说明:
streamType类型:(音量类型)
STREAM_ALARM 提示音
STREAM_MUSIC 音乐音量即多媒体音量
STREAM_NOTIFICATION 窗口顶部状态栏Notification,
STREAM_RING 铃声
STREAM_SYSTEM 系统
STREAM_VOICE_CALL 通话
STREAM_DTMF 双音多频

flags参数:(下面是常用的几个)
FLAG_PLAY_SOUND 调整音量时播放声音
FLAG_SHOW_UI 调整时显示系统的音量进度条
0 表示什么都不做

下面是具体代码:

public class AudioUtil {

    private AudioManager mAudioManager;
    private static AudioUtil mInstance;

    private AudioUtil(Context context){
        mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    }

    public synchronized static AudioUtil getInstance(Context context){
        if(mInstance == null){
            mInstance = new AudioUtil(context);
        }
        return mInstance;
    }

    //获取多媒体最大音量
    public int getMediaMaxVolume(){
        return mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
    }
    //获取多媒体音量
    public int getMediaVolume(){
        return mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
    }

    //获取通话最大音量
    public int getCallMaxVolume(){
        return mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
    }

    //获取系统音量最大值
    public int getSystemMaxVolume(){

        return mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM );
    }
    //获取系统音量
    public int getSystemVolume(){

        return mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM );
    }

    //获取提示音量最大值
    public int getAlermMaxVolume(){
        return mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM );
    }

    /**
     * 设置多媒体音量
     * 这里我只写了多媒体和通话的音量调节,其他的只是参数不同,大家可仿照
     */ 
    public void setMediaVolume(int volume){
        mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, //音量类型
                volume,
                AudioManager.FLAG_PLAY_SOUND
                        | AudioManager.FLAG_SHOW_UI);
    }

    //设置通话音量
    public void setCallVolume(int volume){
        mAudioManager.setStreamVolume( AudioManager.STREAM_VOICE_CALL,
                volume,
                AudioManager.STREAM_VOICE_CALL);
    }

    // 关闭/打开扬声器播放
    public void setSpeakerStatus(boolean on) {
        if (on) { //扬声器
            mAudioManager.setSpeakerphoneOn(true);
            mAudioManager.setMode(AudioManager.MODE_NORMAL);
        } else {
            // 设置最大音量
            int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
            mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, max, AudioManager.STREAM_VOICE_CALL);
            // 设置成听筒模式
            mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
            mAudioManager.setSpeakerphoneOn(false);// 关闭扬声器
            mAudioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
        }
    }
}

另外,还有个public void adjustStreamVolume(int streamType, int direction, int flags)方法也可用来调整音量,只不过不能设置具体数值,根据系统的阀值来自动调整,其中第1和第3个参数上面有说明,下面是第2个参数的介绍:

direction是调整的方向,增加或减少:
ADJUST_LOWER 降低音量
ADJUST_RAISE 增加音量
ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量

Android Audio音量——音量加减设置(二) adjustStreamVolume()方法所需要的音量操作参数,可以在 AudioManager.java 中查看。参数值含义增加音量降低音量显示音量,但不设置静音取消静音切换静音状态1)利用设置的音频流类型 streamType 找到对应的音量状态管理类 VolumeStreamState,此类集合的音量管理的核心方法,内部有一个 map 集合保存了所有输出设备及其对应的音量等级 index,最终也是调整这个 index。 阅读详情

相关推荐

Android实现手机音量最大值限制

可设置手机的最大音量限制,当调节音量超过最大值时,需要输入密码。 防止小孩子玩手机时开大音量又不听劝阻。 与娃娃斗,其乐无穷 附源码供学习。

Andorid 6.0权限管理遇到的坑

Android 6.0 的用户权限分为 默认安装权限和运行时手动分配权限; 6.0权限管理做的比较好的第三方sdk,代码参加github工程:http://hotchemi.github.io/PermissionsDispatcher/ ; 简单分析一下本人在应用该工程中遇到的几个问题 (1)如何引用该工程,请参见工程的说明; (2)应用成功后:

六如公子-android天空 1780

傻瓜式下载、安装CentOS7操作步骤

CentOS7.9下载和安装操作步骤

weixin_45608163的博客 1万+

Android手机音量设置相关

Android中手机声音调节步骤: a、通过系统服务获得声音管理器: AudioManager audioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE); b、根据实际需要调用适当的方法:(常用方法) audioManager.adjustStreamVolume(int streamType, int directi...

qq_18273521的博客 651

Rapid SCADA MQTT

一、配置RapidSCADA 1、准备KpMqtt.dll、Jint.dll库文件,从网盘下载。 2、将以上两个文件拷贝到SCADA安装目录的Comm/KP目录下,如下: C:\SCADA\ScadaComm\KP 3、新建SCADA项目 4、新建Line 5、新建Device 6、拷贝Config目录下的KpMqtt_001.xml文件、KpMqtt_Job.js文件到项目Comm\Config下,如下示例链接 C:\SCADA\Projects\MQTTProject\Instances\Defau

mumanquan1的博客 3005

WRF后处理总结:wrf-python与NCL在WRF后处理中的基本应用——变量提取、计算与可视化

判断需要提取的变量与诊断量确定后,使用getvar函数进行提取。可使用ncdump-h命令查看wrfout中的变量,wrf中的诊断量分类也可从官方文档处查阅。判断绘图类型所需的可视化绘图类型,决定了你在WRF后处理中的计算步骤。1D点线图:ll_to_xy interpline2D填色图:interplevel3D剖面图:vinterp vertcross绘图、美化色标、XY轴、标签的设置等等。

weixin_43750300的博客 1万+

android 两个视频同时播放音频冲突的解决

在android app开发中,在一些音乐视频播放器中,在某些页面的时候,需要多个视频布局控件切换播放视频,这时发现会抛异常播放不了视频,经过问题排查发现这是由于音频焦点引起的冲突,所以会导致播放失败,接下来看下音频焦点的问题。

安卓兼职framework和app工程师的博客 9467

Kimi Code国产AI编程助手安装使用详细教程

Kimi Code 开发者智能编程服务简介:Kimi Code 是专为开发者提供的 AI 编程辅助工具,基于旗舰模型 Kimi K3(2.8万亿参数,支持100万token上下文)。提供 CLI、VS Code 插件等形式,支持代码阅读、编辑等功能。用户可通过API Key接入第三方工具。安装简单(Windows/Mac/Linux一键脚本),需在官网生成API密钥并登录使用。注意账户需充值余额方可正常调用服务。

猿小白的博客 2042

android 音量调节不起作用,Android开发之调整手机音量

调整手机的各种音量可以通过AudioManager这个类来操作注:安卓手机各种音量的最大数值不一样,请通过下面具体的方法获取最大音量值。涉及的参数说明:streamType类型:(音量类型)STREAM_ALARM 提示音STREAM_MUSIC 音乐音量即多媒体音量STREAM_NOTIFICATION 窗口顶部状态栏Notification,STREAM_RING 铃声STREAM_SYSTE...

weixin_39579726的博客 1146

【GameFramework框架内置模块】15、场景(Scene)

场景(Scene)模块,提供场景管理的功能,负责场景的加载、卸载、切换和管理。可以方便地管理不同场景之间的切换以及不同场景之间的信息传递。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1882

RISC-V CPU设计(三)---多周期CPU的设计与实现

基本情况 本多周期CPU支持RV32I指令集(fence,ecall,ebreak除外),已通过部分指令的测试,如代码有bug,欢迎指出。 模块划分 代码将CPU划分为以下几个模块: 1.控制单元:ControlUnit 用于产生控制信号,是CPU的大脑,指挥中枢。 2.分支决策单元:BranchUnit 用于决定B型指令是否发生跳转 3.立即数单元:ImmUnit 用于从指令中解析出立即数. 4.寄存器堆:RegisterFile RISC-V的32个寄存器,其中x0寄存器恒为0,不可更改。 5.指令存储

qq_40268672的博客 5540

针对AirPods连接安卓手机时声音很小的解决方法

相信很多人跑步时都喜欢听歌吧,最近我遇到一个问题就是安卓手机连接AirPods时手机调到最大声却依旧很小声,这也导致我暂停了几天的跑步计划。 经过几天的探索,我找到了修复方法,今天就分享一下这个方法吧! 1.安卓手机连接AirPods,音量调到最大,同时打开手机设置,找到:MIUI版本,连续点七下进入开发者选项模式。 2.进入开发者选项,找到并关闭停用绝对音量,如图: 3.打开蓝牙设置,关掉媒体音频,再打开媒体音频,你会发现现在显示一半音量,但是音量确和刚刚全开的一样大。 4.友情提示:记得快速取下你的蓝牙

weixin_49424607的博客 7万+

Kalibr 安装+制作采集的图片和IMU数据生成 .bag 文件 (坑最全,解决方法最简单,最详细哈哈)

方法一、Kalibr标定工具实现 开源代码连接:https://github.com/ethz-asl/kalibr 1.1 创建工作空间 ——下载程序——编译 mkdir -p ~/kalibr_workspace/src cd /kalibr_workspace/src git clone https://github.com/ethz-asl/Kalibr.git cd .. //返回上一级 catkin_make source devel/setup.bash ......

努力努力努力 6939

android AudioManager类详解(推送铃声的时候用到,集成喜马拉雅时用于调控音量)

android AudioManager类详解(推送铃声的时候用到,集成喜马拉雅时用于调控音量) androidstreamservicesystem手机音乐 AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。 通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。 Audio...

wdx_1136346879的博客 714

RT-DETR改进前必看 - Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进

的项目文件中集成了YOLOv3v5v6v8v9v10rt-detr11以及其中不同大小的模型结构,更方便我们学习和使用。的参数配置在路径下,其中中设置了模型在训练Train验证Val/Test预测Predict可视化Visualize导出Export超参数Hyperparameters、以及跟踪Tracker的相关参数。在调参过程中主要涉及训练Train和超参数Hyperparameters。下面主要介绍一下初始超参数Hyperparameters。

Limiiiing的博客 7959

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

cocos2d-x下硬件音量按键控制游戏音量的实现

本文连接(http://blog.youkuaiyun.com/keven418440201/article/details/9138721) 最近在用cocos2d-x写一个小游戏,快完工时发现,游戏的背景音乐和音效的音量大小不受手机(android OS)音量调节按键的控制。几经周折才发现,cocos2d-x根本没实现相关功能(个人意见,有其他方实现的可联系我,多谢),于是最后修改了cocos2d...

R0CK Y0U的博客 3110

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android--AudioManager控制音量

首先,让我们来看下本程序的实现截图: 图中的五个ImageButton实现不同的功能: 1.调大音量 2.减小音量 3.调整手机模式为正常 4.调整手机模式为静音 5.调整手机模式为震动 下面给出实现的代码: public class EX07_08 extends Activity { /* 变量宣告 */ private ImageView myIma

张勤一 3843

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 获取系统中各种类型音量及对音量设置

通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单!     1. AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  //通话音量     1. int max = mAudioManager.getStreamMaxVolum

w6028819321的专栏 3018

Android 实时获取麦克风输入音量的代码

Android 上有一些很有趣的应用,例如《吹裙子》、《吹气球》之类的。利用的是实时获取麦克风输入音量,然后进行相应的处理。录音过程中怎样获得声音的大小呢?网上也不少人问如何处理这个事情,也有一些解答,不过都没有实际的代码。简单摸索了一下,写了个小 Demo 试了试,果然可以。给大家共享一下。 不解释代码了,大家看注释。 package com.xxiyy.spl; import andr

穿拖鞋写程序 3万+

Android学习笔记(二)——手机控制

1.手机通知功能——Notification和NotificationManager的应用   Notification是Android系统中的一种通知服务,其通过状态栏、手机震动、LED和提示音等多种通知方式提供了丰富而良好的用户体验。 使用步骤: (1)获取NotificationManager对象。通过调用系统NOTIFICATION_SERVICE服务,获取NotificationM

Singleton1900的专栏 3359

android取消自动调试模式,Android 非ROOT手机 apk 获取更改设置开关权限,比如打开usb调试...

参考链接:Android获取USB调试状态获取很简单,适用于API 17+//检查USB调试状态public static boolean checkUSBDebug(){if(Settings.Global.getInt( Context.getContentResolver(), Settings.Global.ADB_ENABLED, 0) == 1) {return true;} else...

weixin_30556403的博客 549

JSane 项目使用教程

JSane 项目使用教程 1. 项目目录结构及介绍 JSane 项目的目录结构如下: jsane/ ├── jsane/ │ ├── __init__.py │ ├── traversable.py │ └── ... ├── tests/ │ ├── test_jsane.py │ └── ... ├── .gitignore ├── .travis.yml ├── CONT...

gitblog_00080的博客 479

815

AudioManager(音频管理器): AudioManager am=(AudioManager)this.getSystemService(Service.AUDIO_SERVICE); int maxVol= am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//获取最大音乐音量值(15最大) AudioManager.STREAM_VO...

www.jiav.net技术网站的加盟博客 696

手机桌面的动态设置,有几点小问题

service android:name=".VideoLiveWallpaper" android:label="@string/app_name" android:permission="android.permission.BIND_WALLPAPER" android:process=":wallpaper"> 为实时壁纸配置intent-filte

泪痕的博客 1448

scrcpy常用命令与快捷键

笔者心目中最优秀的手机投屏软件,还开源

氦 1万+
上一篇: Android开发之调节屏幕亮度
下一篇: Android 6.0权限管理
程序猫King
博客等级 码龄14年 5580粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猫King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值