PM AM 2021-11-18 17:02 采纳率: 0%
浏览 12
已结题

android Bassbost 功能的实现 为什么对音频没有任何改变

我现在就像编写一个音乐均衡器,就想先实现低音增强的功能,在网上找了很多帖子,都大同小异,我也跟着写了如下图,可是就是对音频好像没有什么变化,求帮忙解答!急

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private MediaPlayer mPlayer;
    private SeekBar seekBar;
    private TextView textView;
    private BassBoost bassBoost ;
//    private PresetReverb presetReverb;
    private Button btnStop;
    private Button btnPlay;
    private Button btnPause;
    private boolean isRelease =true;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        setContentView(R.layout.activity_main);
        bindViews();
        setupBassBoost();
    }

    private void setupBassBoost(){
        seekBar =(SeekBar) findViewById(R.id.seekBar);
        textView =(TextView) findViewById(R.id.textView);

        if(isRelease == false){
            bassBoost = new BassBoost(0,mPlayer.getAudioSessionId());
            bassBoost.setEnabled(true);

            seekBar.setMax(1000);
            seekBar.setProgress(0);

            seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                //他改变
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    bassBoost.getProperties();
                    bassBoost.setStrength((short) progress);
                }
                //触碰

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                //释放
                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            });
        }
    }

    private void bindViews(){

        btnStop = (Button) findViewById(R.id.button);
        btnPlay = (Button) findViewById(R.id.button2);
        btnPause = (Button) findViewById(R.id.button3);

        btnStop.setOnClickListener(this);
        btnPlay.setOnClickListener(this);
        btnPause.setOnClickListener(this);

    }


    @Override
    protected void onPause(){
        super.onPause();
        if(isFinishing() && mPlayer!=null){
            bassBoost.release();
            mPlayer = null;
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button:
                mPlayer.pause();
                btnPlay.setEnabled(true);
                btnStop.setEnabled(false);
                btnPause.setEnabled(false);
                break;
            case R.id.button2:
                if(isRelease){
                    mPlayer = MediaPlayer.create(this,R.raw.cpnv);
                    isRelease = false;
                }
                btnPlay.setEnabled(false);
                btnStop.setEnabled(true);
                btnPause.setEnabled(true);
                mPlayer.start();
                break;
            case R.id.button3:
                mPlayer.reset();
                mPlayer.release();
                isRelease = true;
                btnPlay.setEnabled(true);
                btnStop.setEnabled(false);
                btnPause.setEnabled(false);
                break;
        }
    }
}

求帮忙解答

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-11-19 17:48
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 创建了问题 11月18日

悬赏问题

  • ¥20 QT如何判断QLineF线鼠标划过事件
  • ¥15 关于#phpstorm#的问题:phpstorm编辑工具 光标选中了就会自动复制到粘贴板上 这样我之前复制的内容就失效了
  • ¥15 pychram安装jupyter插件
  • ¥60 悬赏破解越狱iphone4s中360保险箱密码遗忘
  • ¥20 ARKts悬浮窗和快捷方式问题
  • ¥15 linux中nginx服务器提示not found on accelerator,如何解决?(语言-php|操作系统-linux)
  • ¥15 comparecluster没有办法kegg
  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上