初学Android,音频管理器之控制音频(六十六)
下面要写的是AudioManager这个音频管理器,它可以通过getSystemService得到
有一个重要方法adjustStreamVolumn(int streamType,int direction,int flags)
streamType 这个参数指定了声音的类型,如下
STREAM_ALARM:手机闹铃声音
STREAM_DTMF:DTMF音调的声音
STREAM_MUSIC:手机音乐的声音
STREAM_NOTFICATION:系统提示的声音
STREAM_RING:电话铃声的声音
STREAM_SYSTEM:手机系统的声音(不知道什么是系统声音,按键的声音?)
STREAM_VOICE_CALL:语音电话的声音
direction: 这个参数代表声音增大还是减少
flags:调整声音时的标志,例如指定FLAG_SHOW_UI,指定调整声音时显示音量进度条
setMicrophoneMute(boolean on):设置是否让麦克风静音
setMode(int mode):设置声音模式,可设置的值有NORMAL,RINGTONE和IN_CALL
setRingMode(int ringerMode):设置手机的电话铃声的模式,有如下几种
RINGER_MODE_NORMAL:正常手机铃声
RINGER_MODE_SILENT:手机铃声静音
RINGER_MODE_VIBRATE: 手机振动
setSpeakerphoneOn(boolean on):设置是否打开扩音器
setStreamMute(int streamType,boolean state):将手机的指定类型的声音调整为静音.其中streamType参数与adjustStreamVolume方法中第一个参数的意义相同
setStreamVolume(int StreamType,int index,int flags):直接设置手机的指定类型的音量值,其中streamType参数与adjustStreamVolume方法中第一个参数的意义相同
下面只是一个例子,并不能真的用来当播放器,有很多问题没有处理,所以这个例子只是教会怎么使用音频管理器这个工具
package WangLi.Service.AudioTest;import android.app.Activity;
import android.app.Service;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;public class AudioTest extends Activity {Button play, up, down;ToggleButton mute;AudioManager aManager;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获取系统的音频服务aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE);// 获取界面中的三个按钮和一个ToggleButton控件play = (Button) findViewById(R.id.play);up = (Button) findViewById(R.id.up);down = (Button) findViewById(R.id.down);mute = (ToggleButton) findViewById(R.id.mute);// 为play按钮的单击事件绑定监听器play.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// 初始化MediaPlay对象,准备播放音乐MediaPlayer mPlayer = MediaPlayer.create(AudioTest.this,R.raw.one);// 设置循环播放mPlayer.setLooping(true);// 开始播放mPlayer.start();}});up.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 指定调节音乐的音频,增大音量,而且显示音量图形示意aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);}});down.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 指定调节音乐的音频,降低音量,而且显示音量图形示意aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);}});mute.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton source,boolean isChecked) {// 指定调节音乐的音频,根据isChecked确定是否需要静音aManager.setStreamMute(AudioManager.STREAM_MUSIC, isChecked);}});}
}
初学Android,音频管理器之控制音频(六十六)相关推荐
- 【正点原子STM32连载】第六十六章 综合测试实验摘自【正点原子】STM32F103 战舰开发指南V1.2
1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视 ...
- 人生哲理名言六十六条
一提到哲理好像是老年人的专利,其实年青人多看看和学学哲理也是有好处的.摘录哲理名言共享. 人生哲理名言六十六条: 1人之所以痛苦,在于追求错误的东西. 2如果你不给自己烦恼,别人也永远不可能给你烦恼. ...
- 如何选择适合你的兴趣爱好(六十六),折纸
围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第六十六讲--折纸. 折纸又称工艺折纸,是一种以纸张折成各种不同形状的手工活动.话说我在大三的时候,爱上了系里的一 ...
- 第六十六章 SQL命令 REVOKE
文章目录 第六十六章 SQL命令 REVOKE 大纲 参数 描述 撤销的角色 撤销对象权限 撤销对象所有者特权 撤销表级和列级特权 CASCADE 或 RESTRICT 对缓存查询的影响 IRIS S ...
- QT开发(六十六)——登录对话框的验证机制
QT开发(六十六)--登录对话框的验证机制 一.验证码机制 为了避免被恶意程序***,程序通常要使用安全机制.验证码机制是提供产生随机验证码,由用户识别填写来判断用户有效性的安全机制. 验证码必须动态 ...
- JavaScript学习(六十六)—字符串对象常用的属性和方法总结以及数组元素的排序问题
JavaScript学习(六十六)-字符串对象常用的属性和方法总结以及数组元素的排序问题 学习内容 一.数组去重问题 二.二维数组的定义 三.二维数组的元素操作 四.二维数组的遍历 五.关联数组 六. ...
- 第六十六章 Caché 函数大全 $TRANSLATE 函数
文章目录 第六十六章 Caché 函数大全 $TRANSLATE 函数 大纲 参数 描述 `$TRANSLATE`和`$REPLACE` 示例 第六十六章 Caché 函数大全 $TRANSLATE ...
- 第六十六章 SQL函数 ISNULL
文章目录 第六十六章 SQL函数 ISNULL 大纲 参数 描述 日期和时间显示转换 比较的NULL处理函数 示例 第六十六章 SQL函数 ISNULL 测试NULL并返回相应表达式的函数. 大纲 I ...
- 三十而立再出发 六十六载谱芳华 | 吉林大学举行交通学院成立30周年暨交通学科创建66周年庆祝大会...
来源:吉林大学 三十周年栉风沐雨,同甘共苦:花甲六载春华秋实,铸就辉煌.11月19日上午,吉林大学交通学院成立30周年暨交通学科创建66周年庆祝大会在南岭校区体育馆举行.上午9时30分,庆祝大会在国歌 ...
最新文章
- oracle em 性能点不进,oracle em节点启动不成功问题处理总结
- tensorflow学习笔记————分类MNIST数据集
- tensorflow2 存取模型_思维导图:长短期记忆模型
- 如何 Credit Hold 客户
- python apscheduler 阻塞方式只用一个线程_框架APScheduler在python中调度使用的实例详解...
- easyui datagrid 后台分页,前端如何处理
- TortoiseSVN 配合 Beyond Compare 3 或 WinMerge 的设置
- C++17 fold expression
- “Head First 设计模式“ :策略模式
- ubnutu更换合适源(阿里源)
- graSSHopper:一个不错的开源SSH工具
- 软件测试基础—易用性测试
- javaee 与mysql留言簿_基于jsp的留言板系统-JavaEE实现留言板系统 - java项目源码
- BME280测湿度温度
- 第一次养狗_如何度过艰难的第一个月
- OkHttp3使用介绍
- 想成为CSS大师,你倒是学啊 -30个资源大推荐
- js中undefined怎么判断
- 两行代码制作你的专属动态二维码
- 椭圆机的减肥效果怎么样