Android提供的系统服务之--AudioManager(音频管理器)
Android提供的系统服务之--AudioManager(音频管理器)
----转载请注明出处:coder-pig
AudioManager相关简介与常用方法图:
简单的使用例子:
使用Mediaplayer播放音乐,通过AudioManager调节音量大小与静音:
这里,我们需要把要播放的音频文件放到res下的raw文件夹,这个文件夹默认是没有的,需要自己创建哦!
用来放原生资源的,就是打包编译的时候不会把他变成二进制文件!!!
先来看看效果图吧:
就是播放音乐,然后调高音量的时候可以看到滑动条,然后调低音量那里就设置成了声音,不显示滑动条:
这个是有adjustStreamVolume()方法的第三个参数决定的!
好了开始代码的编写吧:
简单的布局:activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.jay.example.audiomanagerdemo.MainActivity" > <Button android:id="@+id/btnstart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放" /> <Button android:enabled="false" android:id="@+id/btnstop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" /> <Button android:id="@+id/btnhigher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="调高音量" /> <Button android:id="@+id/btnlower" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="调低音量" /> <Button android:id="@+id/btnquite" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="静音" /> </LinearLayout>
接着是MainActivity.java:
package com.jay.example.audiomanagerdemo; 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; public class MainActivity extends Activity implements OnClickListener{ private MediaPlayer mePlayer; private AudioManager aManager; private Button btnstart; private Button btnstop; private Button btnhigher; private Button btnlower; private Button btnquite; //定义一个标志用来标示是否点击了静音按钮 private int flag = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnstart = (Button) findViewById(R.id.btnstart); btnstop = (Button) findViewById(R.id.btnstop); btnhigher = (Button) findViewById(R.id.btnhigher); btnlower = (Button) findViewById(R.id.btnlower); btnquite = (Button) findViewById(R.id.btnquite); //获得系统的音频对象 aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE); //初始化mediaplayer对象,这里播放的是raw文件中的mp3资源 mePlayer = MediaPlayer.create(MainActivity.this, R.raw.one); //设置循环播放: mePlayer.setLooping(true); btnstart.setOnClickListener(this); btnstop.setOnClickListener(this); btnhigher.setOnClickListener(this); btnlower.setOnClickListener(this); btnquite.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnstart: btnstop.setEnabled(true); mePlayer.start(); btnstart.setEnabled(false); break; case R.id.btnstop: btnstart.setEnabled(true); mePlayer.pause(); btnstop.setEnabled(false); break; case R.id.btnhigher: // 指定调节音乐的音频,增大音量,而且显示音量图形示意 aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); break; case R.id.btnlower: // 指定调节音乐的音频,降低音量,只有声音,不显示图形条 aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND); break; case R.id.btnquite: // 指定调节音乐的音频,根据isChecked确定是否需要静音 flag *= -1; if(flag == -1) { aManager.setStreamMute(AudioManager.STREAM_MUSIC,true); btnquite.setText("取消静音"); } else { btnquite.setText("静音"); aManager.setStreamMute(AudioManager.STREAM_MUSIC,false); } break; } } }
代码也是非常简单的,这里就不过多的讲解了!
另外还有一点要注意的:如果adjustStreamVolume()的第三个参数你设置了振动(Vibrator),需要在AndroidManifest.xml
中添加这个权限哦!
<uses-permission android:name="android.permission.VIBRATE"/>
本节demo下载:AudioManager简单使用demo下载
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。