gpt4 book ai didi

android - Seekbar 播放时不动

转载 作者:搜寻专家 更新时间:2023-11-01 09:14:08 25 4
gpt4 key购买 nike

我录制了音频,并通过媒体播放器播放。录音、播放正常。我在播放录制的声音时使用了搜索栏。我使用以下代码播放存储在 sdcard 中的内容。它工作正常.. mFileName 是 sdcard 中的音频文件。搜索栏在播放时不会移动。任何建议...

      private void startPlaying()
{

MediaPlayer mPlayer = new MediaPlayer();

try {
mPlayer.setDataSource(mFileName);
mPlayer.prepare();
mPlayer.start();
mSeekBar.setMax(mPlayer.getDuration());
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
}

我用过

    mSeekBar.setOnSeekBarChangeListener(new SeekBar.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) {
// TODO Auto-generated method stub
if(fromUser){
mPlayer.seekTo(progress);
mSeekBar.setProgress(progress);
}
}
});
Thread currentThread = new Thread((Runnable) this);
currentThread.start();

public void run() {
// TODO Auto-generated method stub
try {
while(mPlayer != null){
int currentPosition = mPlayer.getCurrentPosition();
Message msg = new Message();
msg.what = currentPosition;
threadHandler.sendMessage(msg);
}
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Handler threadHandler = new Handler(){
public void handleMessage(Message msg){

mSeekBar.setProgress(msg.what);
}
};

进度条仅在用户移动时移动。它不会自动移动。

最佳答案

搜索栏不会神奇地自行更新以显示 MediaPlayer 的当前位置。这是一个链接,显示如何使用轮询线程执行此操作,轮询线程大约每秒检查一次 MediaPlayer 的位置并相应地更新搜索栏:

http://united-coders.com/nico-heid/an-android-seekbar-for-your-mediaplayer

关于android - Seekbar 播放时不动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5937596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com