`
aspnetwinform
  • 浏览: 89918 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

AudioManager详解_什么是AudioManager

 
阅读更多

AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。

官方文档中注明了:Use Context.getSystemService(Context.AUDIO_SERVICE) to get an instance of this class.

所以我们可以通过下面的语句获得:

AudioManager audiomanage = (AudioManager)getAcitivity().getSystemService(Context.AUDIO_SERVICE);

audiomanager就是我们定义的控制系统声音的对象。


这里只讲述几个比较常用到的方法:


adjustVolume(int direction, int flags)

用来控制手机音量大小,

当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,

传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。


adjustStreamVolume(int streamType, int direction, intflags)

(以步长)调节手机音量大小
参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)
参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
参数3:可选的标志位


setStreamVolume(int streamType, int index, intflags)

直接设置音量大小


getMode()

返回当前音频模式,如 NORMAL(普通), RINGTONE(铃声), orIN_CALL(通话)


setMode()

设置声音模式,可取值NORMAL(普通), RINGTONE(铃声), or IN_CALL(通话)

getRingerMode()

返回当前的铃声模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动)

setRingerMode(int ringerMode)

改变铃声模式

getStreamVolume(int streamType)

取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。

getStreamMaxVolume(int streamType)

获得当前手机最大铃声。

setStreamMute(int streamType, boolean state)
静音或不静音音频流
设置指定声音类型(streamType)是否为静音。如果state为true,则设置为静音;否则,不设置为静音。

//音量控制,初始化定义

AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//最大音量
int maxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//当前音量
int currentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);



直接控制音量的多少:

if(isSilent){
  mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0, 0);
}else{
  mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,tempVolume, 0);//tempVolume:音量绝对值
}


以一步步长控制音量的增减,并弹出系统默认音量控制条:

//降低音量,调出系统音量控制
if(flag ==0){
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,
                            AudioManager.FX_FOCUS_NAVIGATION_UP);
}
//增加音量,调出系统音量控制
else if(flag ==1){
  mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,
                            AudioManager.FX_FOCUS_NAVIGATION_UP);
}


常用方法:
android audioManager获取音量:
先获取AudioManager实例,
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

//通话音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL ); 

int current = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL ); 

//系统音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM ); 

//铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_RING ); 

//音乐音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC ); 



//提示声音音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM ); 


分享到:
评论

相关推荐

    AudioManager的setmode使用及其详解

    `AudioManager`是Android系统中的一个关键组件,用于管理和控制设备的音频输出。`setMode`方法是`AudioManager`中的一个重要接口,用于设定当前的音频模式,这直接影响到音频的路由和电话服务层的行为。在不同的音频...

    EV录屏软件,一个很好用没有广告,没有会员的录屏软件

    **EV录屏软件详解** EV录屏软件是一款深受用户喜爱的免费录屏工具,它以其无广告、无需会员的特性在市场上脱颖而出。这款软件提供了一系列高效且实用的功能,旨在帮助用户轻松录制高质量的屏幕视频,无论是教学讲解...

    Android 蓝牙 Audio音频输出通道切换详解_卡音,多年安卓开发经验,从实际项目中获取到的经验,对安卓开发者非常有帮助。

    Android 蓝牙 Audio 音频输出通道切换详解 Android 蓝牙 Audio 音频输出通道切换是 Android 开发中一个重要的知识点。Android 系统自动切换 Audio 音频输出通道的策略无法满足所有的产品需求,因此需要强制切换 ...

    Android 各种音量的获取

    ### Android各种音量的获取详解 #### 一、引言 在Android开发过程中,对于音频控制的需求非常普遍,比如在开发电话应用时调整通话音量、在音乐播放器中调节播放音量等。本文将详细介绍如何通过编程方式获取Android...

    Papae.AudioManager-master.zip

    《Unity3d声音管理插件AudioManager详解》 在Unity3d游戏开发中,音频管理是不可或缺的一部分。它涉及到游戏中的各种声音效果,如角色动作声、环境背景音乐、UI反馈音等。Papae.AudioManager就是一款专为Unity3d...

    android多媒体和相机详解(二)

    ### Android多媒体和相机详解(二):音频焦点管理 #### 概述 在Android系统中,音频焦点(Audio Focus)管理对于确保良好的用户体验至关重要。由于Android是一个多任务环境,可能存在多个应用程序试图同时使用设备...

    详解Android 视频播放时停止后台运行的方法

    参数包括一个AudioFocusChangeListener(用于监听音频焦点变化),一个音频流类型(例如:AudioManager.STREAM_MUSIC代表音乐流)和一个音频焦点类型(例如:AudioManager.AUDIOFOCUS_GAIN_TRANSIENT表示短暂获得...

    疯狂Android讲义第10章源码(Android服务Service_详解)

     10.5.1 AudioManager简介 404  10.6 振动器(Vibrator) 407  10.6.1 Vibrator简介 407  10.6.2 使用Vibrator控制手机振动 407  10.7 手机闹钟服务  (AlarmManager) 408  10.7.1 AlarmManager简介 408  ...

    QtJNForAndroidI.rar

    【知识点详解】 1. **Qt for Android**:Qt 是一个跨平台的应用程序开发框架,支持多种操作系统,包括Android。使用Qt for Android,开发者可以用C++编写应用,然后在Android设备上运行,无需学习Java或Kotlin等...

    Android多媒体应用开发实战详解:图像、音频、视频、2D和3D

    同时,AudioManager是管理设备音频设置和路由的主要接口。对于音乐播放应用,了解如何使用Mediaplayer或ExoPlayer库是至关重要的。 视频处理涉及到VideoView或SurfaceView,可以用来播放本地或网络视频。另外,...

    Android 中MediaPlayer使用详解源码

    例如,播放背景音乐时可以设置为`AudioManager.STREAM_MUSIC`。 8. 其他特性 `MediaPlayer`还支持设置音量、循环播放、跨应用播放等高级功能。例如,通过`setLooping(true)`可以使媒体文件无限循环,而`...

    Android中默认系统的声音/大小修改和配置详解

    Android中默认系统的声音/大小修改和配置详解 Android系统中默认的声音设置是指系统内置的声音参数,包括系统声音、铃声、警报声、音乐声等多种声音类型。这些声音参数的设置直接影响着用户的使用体验,因此需要...

    Android深入浅出之AudioTrack.

    #### 四、AudioTrack详解 ##### 4.1 JAVA层AudioTrack类 AudioTrack的JAVA层实现位于`framework/base/media/java/android/media/AudioTrack.java`。接下来,我们通过一个示例来理解其基本使用流程: ```java // ...

    Android深入浅出之Audio第一部分AudioTrack

    ### Android深入浅出之AudioTrack知识点详解 #### 一、目的与分析方法 本文旨在深入解析Android中的`AudioTrack`类及其使用场景,为开发者提供一份详尽的技术指南。通过剖析`AudioTrack`的工作原理及其实现细节,...

    Android系统原理及开发要点详解电子书(第7章)

    1. **Audio的Java部分**:位于`frameworks/base/media/java/android/media`,包含了AudioManager等关键类,提供高级别的音频控制接口。 2. **Audio的JNI部分**:位于`frameworks/base/core/jni`,负责构建lib...

Global site tag (gtag.js) - Google Analytics