AudioManager可以修改系统Android系统的音量.doc_第1页
AudioManager可以修改系统Android系统的音量.doc_第2页
AudioManager可以修改系统Android系统的音量.doc_第3页
AudioManager可以修改系统Android系统的音量.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AudioManager可以修改系统Android系统的音量AudioManager可以修改系统Android系统的音量 下面介绍几个AudioManager的几个音量调整方面的方法. 首先是得到AudioManager实例: AudioManageram=(AudioManager)getSystemService(Context.AUDIO_SERVICE); 调整音量方法有两种,一种是渐进式,即像手动按音量键一样,一步一步增加或减少,另一种是直接设置音量值. 1、渐进式 publicvoidadjustStreamVolume(intstreamType,intdirection,intflags) am.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,AudioManager.FLAG_SHOW_UI); 解释一下三个参数 第一个streamType是需要调整音量的类型,这里设的是媒体音量,可以是: STREAM_ALARM警报 STREAM_MUSIC音乐回放即媒体音量 STREAM_NOTIFICATION窗口顶部状态栏Notification, STREAM_RING铃声 STREAM_SYSTEM系统 STREAM_VOICE_CALL通话 STREAM_DTMF双音多频,不是很明白什么东西 第二个direction,是调整的方向,增加或减少,可以是: ADJUST_LOWER降低音量 ADJUST_RAISE升高音量 ADJUST_SAME保持不变,这个主要用于向用户展示当前的音量 第三个flags是一些附加参数,只介绍两个常用的 FLAG_PLAY_SOUND调整音量时播放声音 FLAG_SHOW_UI调整时显示音量条,就是按音量键出现的那个 2、直接设置音量值的方法: publicvoidsetStreamVolume(intstreamType,intindex,intflags) am.setStreamVolume(AudioManager.STREAM_MUSIC,am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),AudioManager.FLAG_PLAY_SOUND); am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);/得到听筒模式的最大值 am.getStreamVolume(AudioManager.STREAM_VOICE_CALL);/得到听筒模式的当前值 第一个和第三个参数与上面的相同 第二个参数是一个音量的int值,getStreamMaxVolume(intstreamType)得到的是该类型音量的最大值,可以根据这个值计算你需要的音量,我这里直接调到最大. 最后我的代码: packagecom.lp; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; importjava.io.InputStream; importAndroid.app.Activity; importAndroid.content.Context; importAndroid.media.AudioFormat; importAndroid.media.AudioManager; importAndroid.media.AudioTrack; importAndroid.os.Bundle; importAndroid.view.View; importAndroid.view.View.OnClickListener; importAndroid.widget.Button; importAndroid.widget.SeekBar; /* *AudioTrack播放音频如wav格式 *并允许调节音量 *authorAdministrator * */ publicclassMainActivity5extendsActivity privateButtonplay; privateButtonstop; privateSeekBarsoundValue; privateAudioTrackat; privateAudioManageram; Override publicvoidonCreate(BundlesavedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main_sk); am=(AudioManager)getSystemService(Context.AUDIO_SERVICE); play=(Button)findViewById(R.id.main_sk_play); stop=(Button)findViewById(R.id.main_sk_stop); soundValue=(SeekBar)findViewById(R.id.skbVolume); setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); play.setOnClickListener(newOnClickListener() Override publicvoidonClick(Viewv) if(am.isSpeakerphoneOn() am.setSpeakerphoneOn(false); /setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); am.setMode(AudioManager.MODE_IN_CALL); System.out.println(am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL); System.out.println(&); System.out.println(am.getStreamVolume(AudioManager.STREAM_VOICE_CALL); /am.setStreamVolume(streamType,index,flags) intbufferSizeInBytes=AudioTrack.getMinBufferSize(44100,AudioFormat.CHANNEL_OUT_MONO,AudioFormat.ENCODING_PCM_16BIT); if(at=null) at=newAudioTrack(AudioManager.STREAM_VOICE_CALL,44100,AudioFormat.CHANNEL_OUT_MONO,AudioFormat.ENCODING_PCM_16BIT,bufferSizeInBytes,AudioTrack.MODE_STREAM); System.out.println(22222); /at.setStereoVolume(100f,100f); at.setStereoVolume(0.7f,0.7f);/设置当前音量大小 newAudioTrackThread().start(); else if(at.getPlayState()=AudioTrack.PLAYSTATE_PLAYING) System.out.println(111111111); else System.out.println(33333); at=newAudioTrack

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论