Android提供的系统服务之--AudioManager(音频管理器)

Android提供的系统服务之--AudioManager(音频管理器)

                                                          ----转载请注明出处:coder-pig



AudioManager相关简介与常用方法图:





简单的使用例子:

使用Mediaplayer播放音乐,通过AudioManager调节音量大小与静音:

这里,我们需要把要播放的音频文件放到res下的raw文件夹,这个文件夹默认是没有的,需要自己创建哦!

用来放原生资源的,就是打包编译的时候不会把他变成二进制文件!!!


先来看看效果图吧:


就是播放音乐,然后调高音量的时候可以看到滑动条,然后调低音量那里就设置成了声音,不显示滑动条:

这个是有adjustStreamVolume()方法的第三个参数决定的!

好了开始代码的编写吧:


简单的布局:activity_main.xml:

[html]   view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:id="@+id/LinearLayout1"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical"  
  7.     tools:context="com.jay.example.audiomanagerdemo.MainActivity" >  
  8.   
  9.     <Button  
  10.         android:id="@+id/btnstart"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_height="wrap_content"  
  13.         android:text="播放" />  
  14.       
  15.       
  16.     <Button  
  17.         android:enabled="false"  
  18.         android:id="@+id/btnstop"  
  19.         android:layout_width="wrap_content"  
  20.         android:layout_height="wrap_content"  
  21.         android:text="停止" />  
  22.   
  23.     <Button  
  24.         android:id="@+id/btnhigher"  
  25.         android:layout_width="wrap_content"  
  26.         android:layout_height="wrap_content"  
  27.         android:text="调高音量" />  
  28.       
  29.     <Button  
  30.         android:id="@+id/btnlower"  
  31.         android:layout_width="wrap_content"  
  32.         android:layout_height="wrap_content"  
  33.         android:text="调低音量" />  
  34.       
  35.     <Button  
  36.         android:id="@+id/btnquite"  
  37.         android:layout_width="wrap_content"  
  38.         android:layout_height="wrap_content"  
  39.         android:text="静音" />  
  40.       
  41. </LinearLayout>  


接着是MainActivity.java:

[java]   view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. package com.jay.example.audiomanagerdemo;  
  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.   
  12.   
  13.   
  14. public class MainActivity extends Activity implements OnClickListener{  
  15.   
  16.     private MediaPlayer mePlayer;  
  17.     private AudioManager aManager;  
  18.     private Button btnstart;  
  19.     private Button btnstop;  
  20.     private Button btnhigher;  
  21.     private Button btnlower;  
  22.     private Button btnquite;  
  23.     //定义一个标志用来标示是否点击了静音按钮  
  24.     private int flag = 1;  
  25.       
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.activity_main);  
  30.           
  31.         btnstart = (Button) findViewById(R.id.btnstart);  
  32.         btnstop = (Button) findViewById(R.id.btnstop);  
  33.         btnhigher = (Button) findViewById(R.id.btnhigher);  
  34.         btnlower = (Button) findViewById(R.id.btnlower);  
  35.         btnquite = (Button) findViewById(R.id.btnquite);  
  36.         //获得系统的音频对象  
  37.         aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE);  
  38.         //初始化mediaplayer对象,这里播放的是raw文件中的mp3资源  
  39.         mePlayer = MediaPlayer.create(MainActivity.this, R.raw.one);  
  40.         //设置循环播放:  
  41.         mePlayer.setLooping(true);  
  42.         btnstart.setOnClickListener(this);  
  43.         btnstop.setOnClickListener(this);  
  44.         btnhigher.setOnClickListener(this);  
  45.         btnlower.setOnClickListener(this);  
  46.         btnquite.setOnClickListener(this);  
  47.                   
  48.     }  
  49.   
  50.     @Override  
  51.     public void onClick(View v) {  
  52.         switch (v.getId()) {  
  53.         case R.id.btnstart:  
  54.             btnstop.setEnabled(true);  
  55.             mePlayer.start();  
  56.             btnstart.setEnabled(false);  
  57.             break;  
  58.         case R.id.btnstop:  
  59.             btnstart.setEnabled(true);  
  60.             mePlayer.pause();  
  61.             btnstop.setEnabled(false);  
  62.             break;  
  63.         case R.id.btnhigher:  
  64.             // 指定调节音乐的音频,增大音量,而且显示音量图形示意  
  65.             aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,  
  66.                 AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);  
  67.             break;  
  68.         case R.id.btnlower:  
  69.             // 指定调节音乐的音频,降低音量,只有声音,不显示图形条  
  70.             aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,  
  71.                 AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND);  
  72.             break;  
  73.         case R.id.btnquite:  
  74.             // 指定调节音乐的音频,根据isChecked确定是否需要静音  
  75.             flag *= -1;  
  76.             if(flag == -1)  
  77.             {  
  78.                 aManager.setStreamMute(AudioManager.STREAM_MUSIC,true);  
  79.                 btnquite.setText("取消静音");  
  80.             }  
  81.               
  82.             else  
  83.             {  
  84.                 btnquite.setText("静音");  
  85.                 aManager.setStreamMute(AudioManager.STREAM_MUSIC,false);  
  86.             }  
  87.             break;  
  88.         }             
  89.     }  
  90. }  

代码也是非常简单的,这里就不过多的讲解了!

另外还有一点要注意的:如果adjustStreamVolume()的第三个参数你设置了振动(Vibrator),需要在AndroidManifest.xml

中添加这个权限哦!

<uses-permission android:name="android.permission.VIBRATE"/>


本节demo下载:AudioManager简单使用demo下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值