Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用SeekBar';在MediaPlayer对象中查找特定点的OnSeekBarChangeListener?_Android - Fatal编程技术网

Android 如何使用SeekBar';在MediaPlayer对象中查找特定点的OnSeekBarChangeListener?

Android 如何使用SeekBar';在MediaPlayer对象中查找特定点的OnSeekBarChangeListener?,android,Android,我有一些Android代码,可以从互联网上传音频文件,10秒后播放 我正在使用SeekBar查看缓冲状态和播放状态。我想从缓冲流的中间开始播放音频。为此,我将SeekBar点移到中间,但不能从中间播放音频;它将返回并从头开始。我如何获得搜索位置以及如何从该特定位置播放音频 这是我的SeekBar代码。如何使此代码正确使用OnSeekBarChangeListener seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()

我有一些Android代码,可以从互联网上传音频文件,10秒后播放

我正在使用SeekBar查看缓冲状态和播放状态。我想从缓冲流的中间开始播放音频。为此,我将SeekBar点移到中间,但不能从中间播放音频;它将返回并从头开始。我如何获得搜索位置以及如何从该特定位置播放音频

这是我的SeekBar代码。如何使此代码正确使用OnSeekBarChangeListener

seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
        // TODO Auto-generated method stub
        if (arg2 && mediaPlayer.isPlaying()) {
            //myProgress = oprogress;
            arg1=mediaPlayer.getCurrentPosition();
            mediaPlayer.seekTo(arg1);
        }
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

});
您正在强制玩家搜索到当前位置,而不是搜索杆返回的位置


删除以下行:
arg1=mediaPlayer.getCurrentPosition()并且它应该可以工作。当然,在
MediaPlayer.prepare()
set
SeekBar.setMax(MediaPlayer.getDuration())
之后,搜索将是准确的。

我认为您必须创建一个线程。。。下面给出了一些代码,您可以尝试实现这些代码

public void run() {
    try
    {
        while(song1.getDuration()!=song1.getCurrentPosition())
        {
            skbar.setProgress(song1.getCurrentPosition());
            //bStop.setText(song1.getCurrentPosition());
        }
        if (song1.getDuration()==song1.getCurrentPosition())
            Log.v("log","Sanket");
        t.suspend();
    }
    catch (Exception e)
    {
        Log.e("log",e.toString());
    }
}
public void run() {
    try
    {
        while(song1.getDuration()!=song1.getCurrentPosition())
        {
            skbar.setProgress(song1.getCurrentPosition());
            //bStop.setText(song1.getCurrentPosition());
        }
        if (song1.getDuration()==song1.getCurrentPosition())
            Log.v("log","Sanket");
        t.suspend();
    }
    catch (Exception e)
    {
        Log.e("log",e.toString());
    }
}