初学Android,音频管理器之控制音频(六十六)

来源:互联网 发布:linux 打开防火墙端口 编辑:程序博客网 时间:2024/05/17 23:19

下面要写的是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方法中第一个参数的意义相同


下面只是一个例子,并不能真的用来当播放器,有很多问题没有处理,所以这个例子只是教会怎么使用音频管理器这个工具


[java] view plaincopyprint?
  1. package WangLi.Service.AudioTest;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.Service;  
  5. import android.media.AudioManager;  
  6. import android.media.MediaPlayer;  
  7. import android.os.Bundle;  
  8. import android.view.View;  
  9. import android.view.View.OnClickListener;  
  10. import android.widget.Button;  
  11. import android.widget.CompoundButton;  
  12. import android.widget.CompoundButton.OnCheckedChangeListener;  
  13. import android.widget.ToggleButton;  
  14.   
  15. public class AudioTest extends Activity {  
  16.     Button play, up, down;  
  17.     ToggleButton mute;  
  18.     AudioManager aManager;  
  19.   
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         // 获取系统的音频服务  
  25.         aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE);  
  26.         // 获取界面中的三个按钮和一个ToggleButton控件  
  27.         play = (Button) findViewById(R.id.play);  
  28.         up = (Button) findViewById(R.id.up);  
  29.         down = (Button) findViewById(R.id.down);  
  30.         mute = (ToggleButton) findViewById(R.id.mute);  
  31.         // 为play按钮的单击事件绑定监听器  
  32.         play.setOnClickListener(new OnClickListener() {  
  33.             @Override  
  34.             public void onClick(View arg0) {  
  35.                 // 初始化MediaPlay对象,准备播放音乐  
  36.                 MediaPlayer mPlayer = MediaPlayer.create(AudioTest.this,  
  37.                         R.raw.one);  
  38.                 // 设置循环播放  
  39.                 mPlayer.setLooping(true);  
  40.                 // 开始播放  
  41.                 mPlayer.start();  
  42.             }  
  43.         });  
  44.         up.setOnClickListener(new OnClickListener() {  
  45.             @Override  
  46.             public void onClick(View v) {  
  47.                 // 指定调节音乐的音频,增大音量,而且显示音量图形示意  
  48.                 aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,  
  49.                         AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);  
  50.             }  
  51.         });  
  52.         down.setOnClickListener(new OnClickListener() {  
  53.             @Override  
  54.             public void onClick(View v) {  
  55.                 // 指定调节音乐的音频,降低音量,而且显示音量图形示意  
  56.                 aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,  
  57.                         AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);  
  58.             }  
  59.         });  
  60.         mute.setOnCheckedChangeListener(new OnCheckedChangeListener() {  
  61.             @Override  
  62.             public void onCheckedChanged(CompoundButton source,  
  63.                     boolean isChecked) {  
  64.                 // 指定调节音乐的音频,根据isChecked确定是否需要静音  
  65.                 aManager.setStreamMute(AudioManager.STREAM_MUSIC, isChecked);  
  66.             }  
  67.         });  
  68.     }  
  69. }  
0 0
原创粉丝点击