下面要写的是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,音频管理器之控制音频(六十六)相关推荐

  1. 【正点原子STM32连载】第六十六章 综合测试实验摘自【正点原子】STM32F103 战舰开发指南V1.2

    1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视 ...

  2. 人生哲理名言六十六条

    一提到哲理好像是老年人的专利,其实年青人多看看和学学哲理也是有好处的.摘录哲理名言共享. 人生哲理名言六十六条: 1人之所以痛苦,在于追求错误的东西. 2如果你不给自己烦恼,别人也永远不可能给你烦恼. ...

  3. 如何选择适合你的兴趣爱好(六十六),折纸

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第六十六讲--折纸. 折纸又称工艺折纸,是一种以纸张折成各种不同形状的手工活动.话说我在大三的时候,爱上了系里的一 ...

  4. 第六十六章 SQL命令 REVOKE

    文章目录 第六十六章 SQL命令 REVOKE 大纲 参数 描述 撤销的角色 撤销对象权限 撤销对象所有者特权 撤销表级和列级特权 CASCADE 或 RESTRICT 对缓存查询的影响 IRIS S ...

  5. QT开发(六十六)——登录对话框的验证机制

    QT开发(六十六)--登录对话框的验证机制 一.验证码机制 为了避免被恶意程序***,程序通常要使用安全机制.验证码机制是提供产生随机验证码,由用户识别填写来判断用户有效性的安全机制. 验证码必须动态 ...

  6. JavaScript学习(六十六)—字符串对象常用的属性和方法总结以及数组元素的排序问题

    JavaScript学习(六十六)-字符串对象常用的属性和方法总结以及数组元素的排序问题 学习内容 一.数组去重问题 二.二维数组的定义 三.二维数组的元素操作 四.二维数组的遍历 五.关联数组 六. ...

  7. 第六十六章 Caché 函数大全 $TRANSLATE 函数

    文章目录 第六十六章 Caché 函数大全 $TRANSLATE 函数 大纲 参数 描述 `$TRANSLATE`和`$REPLACE` 示例 第六十六章 Caché 函数大全 $TRANSLATE ...

  8. 第六十六章 SQL函数 ISNULL

    文章目录 第六十六章 SQL函数 ISNULL 大纲 参数 描述 日期和时间显示转换 比较的NULL处理函数 示例 第六十六章 SQL函数 ISNULL 测试NULL并返回相应表达式的函数. 大纲 I ...

  9. 三十而立再出发 六十六载谱芳华 | 吉林大学举行交通学院成立30周年暨交通学科创建66周年庆祝大会...

    来源:吉林大学 三十周年栉风沐雨,同甘共苦:花甲六载春华秋实,铸就辉煌.11月19日上午,吉林大学交通学院成立30周年暨交通学科创建66周年庆祝大会在南岭校区体育馆举行.上午9时30分,庆祝大会在国歌 ...

最新文章

  1. oracle em 性能点不进,oracle em节点启动不成功问题处理总结
  2. tensorflow学习笔记————分类MNIST数据集
  3. tensorflow2 存取模型_思维导图:长短期记忆模型
  4. 如何 Credit Hold 客户
  5. python apscheduler 阻塞方式只用一个线程_框架APScheduler在python中调度使用的实例详解...
  6. easyui datagrid 后台分页,前端如何处理
  7. TortoiseSVN 配合 Beyond Compare 3 或 WinMerge 的设置
  8. C++17 fold expression
  9. “Head First 设计模式“ :策略模式
  10. ubnutu更换合适源(阿里源)
  11. graSSHopper:一个不错的开源SSH工具
  12. 软件测试基础—易用性测试
  13. javaee 与mysql留言簿_基于jsp的留言板系统-JavaEE实现留言板系统 - java项目源码
  14. BME280测湿度温度
  15. 第一次养狗_如何度过艰难的第一个月
  16. OkHttp3使用介绍
  17. 想成为CSS大师,你倒是学啊 -30个资源大推荐
  18. js中undefined怎么判断
  19. 两行代码制作你的专属动态二维码
  20. 椭圆机的减肥效果怎么样

热门文章

  1. dpdk 多线程 gdb + master
  2. 设计师必看!一个熬夜不伤身的小秘诀
  3. 怎样改变Eclipse的左边目录显示结构
  4. 洗衣店管理系统ASP.NET
  5. 【MySQL 07】linux + Docker容器环境中备份和还原MySQL数据库
  6. 李开复博士演讲提到的一些
  7. iframe结构的网站按F5刷新子页面的实现方式
  8. python 格式化打印print常见用法(更新中)
  9. 在midjourney看到比较有趣的AI图并记录prompt(一)
  10. 23个经典的面向对象的设计模式与泡妞大法