android - 向音频播放器添加搜索栏后,为什么经常打开和关闭声音?

标签 android audio seekbar

我做了一个Android应用。在这个程序中有一个声音播放器。我已经为音频播放器放置了一个Seekbar。但是,播放音频时,声音会频繁打开和关闭。自添加seekbar以来已创建此问题。我使用Thread解决此问题,但未解决。我在OnCreate方法中使用以下代码:

btn_playSound.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            stop_background_sound();
            if (mPlayer.isPlaying()) {
                mPlayer.pause();
            } else {
                mPlayer.start();
                new Thread() {
                    public void run() {
                        seekBar.post(new Runnable() {

                            @Override
                            public void run() {
                                // seekTo(getCurrentPosition());
                                seekBar.setProgress(mPlayer.getCurrentPosition());
                                seekBar.setMax(mPlayer.getDuration());
                                mHandler.postDelayed(this, 100);

                            }
                        });
                    }
                }.start();
            }
            call_audio_player();
        }
    });



seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            seekTo(progress);
        }
    });

最佳答案

如我所料,即使您使用处理程序更改了搜索栏的位置,但用户并未更改,您仍在更新播放器的播放进度。
更换

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    seekTo(progress);
} 


public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    if(fromUser) {
        seekTo(progress);
    }
} 

关于android - 向音频播放器添加搜索栏后,为什么经常打开和关闭声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739585/

相关文章:

audio - SDL2 浮点音频不剪辑

objective-c - 如何将音频数据存储到文档目录中?

android - 显示播放时间、剩余播放时间

c++ - 通过openAL将录制的音频另存为.wav

android - 禁用或隐藏控件设计指南?

android - 如何使用应用程序接口(interface)将蓝牙套接字传递给另一个 Activity

android - 如何在基于Xamarin.forms的webview中使用html5视频标签?

java - 如何在 Android 上使用两个或多个搜索栏

android - 如何阻止seekBar的移动超过动态点

android - 如何将 fragment 添加到 DialogFragment 的布局中?