Android中如何禁止音量调节至静音

Android中音量按键在调低音量时,如果一直按住Down按钮不放,则系统将音量跳到最小后,又自动调节到静音状态。这个机制和iPhone是不同的,iPhone中无论你怎么按Volume-按钮,只能调到最小,还是有一点声音,是不能自动静音的。

Android中如果要禁止这个自动静音功能,也是有办法的,找到Down按钮的处理事件,做个判断就行了,代码在:

frameworks/base/media/java/android/media/AudioManager.java

public void handleKeyDown(KeyEvent event, int stream) {
        int keyCode = event.getKeyCode();
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                /*
                 * Adjust the volume in on key down since it is more
                 * responsive to the user.
                 */
                int flags = FLAG_SHOW_UI | FLAG_VIBRATE;
                /* avoid auto mute when adjust lower */
                int currentVolume = getStreamVolume(STREAM_MUSIC);
                Log.e(TAG, String.format("currentVolume=%d", currentVolume));
                if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && currentVolume <= 1) {
                    break;
                }
                if (mUseMasterVolume) {
                    adjustMasterVolume(
                            keyCode == KeyEvent.KEYCODE_VOLUME_UP
                                    ? ADJUST_RAISE
                                    : ADJUST_LOWER,
                            flags);
                } else {
时间: 2024-11-10 14:30:57

Android中如何禁止音量调节至静音的相关文章

Android|媒体|播放和音量调节|seekbar|mediaplayer

Android中的音乐媒体播放 Mediaplayer类,定义如下 final MediaPlayer mpRain = MediaPlayer.create(this,R.raw.rain); 文件为  res/raw/rain.mp3  //raw在Androidstudio中我自己创建的 我自己在这里的用法是只有一个按钮,单击使用,如果在播放就停止,否则开始播放,附上代码 1 mpRain.setLooping(true); 2 buttonRain.setOnClickListener(

【VC++技术杂谈001】音频技术之调节音量及设置静音

本文主要介绍如何使用混音器Mixer API函数实现系统音量调节,以及设置静音. 1.混音器的作用及结构 1.1混音器的作用 声卡(音频卡)是计算机进行声音处理的适配器,具有三个基本功能: (1)音乐合成发音功能 (2)混音器(Mixer)功能和数字声音效果处理器(DSP)功能 (3)模拟声音信号的输入和输出功能 混音器的作用是将来自音乐合成器.CD-ROM.话筒输入(MIC)等不同来源的声音组合在一起再输出. 1.2混音器的结构 混音器由多个目的单元(Destination)组成,如回放(Pl

Android 4.4 音量调节流程分析(二)

之前在Android 4.4 音量调节流程分析(一)里已经有简单的分析音量控制的流程,今天想接着继续分析下音量大小计算的方法.对于任一播放文件而言其本身都有着固定大小的音量Volume_Max,而在AudioPolicyManagerBase.cpp文件中音量调节可以理解为在Volume_Max的基础上乘以系数κ(0≤κ≤1). 现在对AudioPolicyManagerBase.cpp中volIndexToAmpl函数做具体分析,volIndexToAmpl的函数定义如下: 1 float A

Android 音量调节

对于Android的音量调节,可以分为按键调节音量和设置中调节音量.我们首先说一说设置中的音量调节. 一.音量的分类: 1.AudioManager.STREAM_VOICE_CALL 2.AudioManager.STREAM_RING 3.AudioManager.STREAM_MUSIC, 4.AudioManager.STREAM_ALARM 5.AudioManager.STREAM_NOTIFICATION 二.音量的范围: 对于不同类型的音量Android规定了不同的范围,在Aud

手机影音第九天,控制视频全屏播放与退出全屏播放,音量调节按钮来控制视频音量与静音的实现

代码以托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 一.视频全屏播放与退出全屏 系统默认的videoview类,没有调整大小的方法,因此需要自定义一个类,继承videoview,然后重写里面的三个构造方法,再自定义一个调整视频播放页面大小的方法. 1.布局文件 同时,在视频播放的布局文件中,videoview布局要引用上面自定义的类. <?xml version="1.0" encoding=&

Android 4.4 音量调节流程分析(一)

最近在做Android Audio方面的工作,有需求是在调节Volume_Up_Key & Volume_Down_key时,Spearker or Headset每音阶的衰减变为3db左右.所以利用Source Insight分析Android源码中音量控制的流程,如有错误,欢迎指正,谢谢! 以下是调节音量的流程: Step_1.首先在调节机台Volume_Up_Key & Volume_Down_Key操作时,系统会调用到AudioManager.java中handleKeyUp &a

设置和获取Android中各种音量

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

解决Android中,禁止ScrollView内的控件改变之后自动滚动

问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示: 滚动的那一下体验特别不好,所以要防止这种情况.即不论Scrollview中内容如何,都要保持在最上. 解决办法: 先简单写一下我的xml文件的结构: [html] view plaincopy <ScrollView android:id="@+id/scrollView1" a

Android 系统设置中显示设置之亮度调节篇

在上一篇博客中,我们学习了显示设置中休眠设置和屏保设置的基本内容.在这一篇中我们来学习设备亮度的调节,首先还是学习在DisplaySettings.xml增加了一个叫做BrightnessPreference的preference的选项用来控制亮度调节. 步骤1:当用户点击BrightnessPreference的时候,由BrightnessPreference做对应的处理(注:其实是发送了一个广播) 1 public class BrightnessPreference extends Pre