你想给你的按钮添加点击的音效吗,盘它~

package com.shanjing.demo01;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.media.AudioManager;import android.media.SoundPool;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.util.HashMap;public class MainActivity extends AppCompatActivity {    private Button btn_start, btn_stop;    SoundPool sp;//声明SoundPool的引用    HashMap hm;//声明HashMap来存放声音文件    int currStaeamId;//当前正播放的streamId    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn_start = findViewById(R.id.btn_start);        btn_stop = findViewById(R.id.btn_stop);        initSoundPool();//初始化声音池的方法        btn_start.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                playSound(1, 0);//播放1号声音资源,且播放一次                //提示播放即时音效                Toast.makeText(MainActivity.this, "播放即时音效", Toast.LENGTH_SHORT).show();            }        });        btn_stop.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                sp.stop(currStaeamId);//停止正在播放的某个声音                //提示停止播放                Toast.makeText(MainActivity.this, "停止播放即时音效", Toast.LENGTH_SHORT).show();            }        });    }    private void playSound(int sound, int loop) {//获取AudioManager引用        AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);        //获取当前音量        float streamVolumeCurrent = am.getStreamVolume(AudioManager.STREAM_MUSIC);        //获取系统最大音量        float streamVolumeMax = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);        //计算得到播放音量        float volume = streamVolumeCurrent / streamVolumeMax;        //调用SoundPool的play方法来播放声音文件        currStaeamId = sp.play(hm.get(sound), volume, volume, 1, loop, 1.0f);    }    private void initSoundPool() {//初始化声音池        sp = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);//创建SoundPool对象        hm = new HashMap();//创建HashMap对象        //加载声音文件,并且设置为1号声音放入hm中        hm.put(1, sp.load(this, R.raw.a, 1));    }}

音效放在res/raw下

 

更多相关文章

  1. Android(安卓)File 数据存储
  2. Android(安卓)监听音量加减
  3. Android中MediaPlayer的setDataSource方法的使用
  4. 用contentResolver+ListView+mediaPlayer实现简单Android音乐播
  5. Unity3D Android播放视频
  6. Android开启关闭手机扬声器
  7. android 播放视频时切换全屏隐藏状态栏
  8. android 播放铃声
  9. Android下调整多媒体音量方法

随机推荐

  1. [置顶] 【博客目录】 Start here o(∩_∩
  2. Android中m、mm、mmm、mma、mmma的区别
  3. android listview 使用checkbox问题
  4. android布局中layout_…
  5. 了解使用Android(安卓)ConstraintLayout
  6. startService与bindService
  7. Android 开发技术周报 Issue#279
  8. Android webview调用js代码无效 webView.
  9. portrait表示纵向,landscape表示横向
  10. Android Studio实现本地视频播放