gpt4 book ai didi

android - 播放音频时,Android SeekBar不会消失

转载 作者:行者123 更新时间:2023-12-03 02:13:27 24 4
gpt4 key购买 nike

我在搜索栏上遇到问题,当我使用Mediaplayer播放音频时,搜索栏不是从它开始的。
我不明白为什么搜索栏不能“刷新”进度。

谢谢你的帮助。

下面我发布代码,我不明白我什么时候错了。

MediaPlayer  player=new MediaPlayer();
SeekBar seekBar;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

try {
AssetFileDescriptor afd = this.getResources().openRawResourceFd(R.raw.mymp3);
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
player.prepare();

} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Button pausa=(Button)findViewById(R.id.button2);
pausa.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
player.pause();
}
});
Button vai=(Button)findViewById(R.id.button3);
vai.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
player.start();
}
});

int tutto=player.getDuration();

seekBar = (SeekBar)findViewById(R.id.seekBar1);

seekBar.setMax(tutto);
seekBar.setProgress(player.getCurrentPosition() / 1000);
}

最佳答案

一种简单的方法是创建一个每秒触发的Timer对象。

在您调用的计时器代码中

seekBar.setProgress(player.getCurrentPosition() / 1000);

此外,您可能希望实现 setOnCompletionListener,以便在播放结束时得到通知,以便可以停止计时器。如果播放结束,应用程序结束或者您手动停止音乐(例如,响应停止按钮),则应该停止计时器

关于android - 播放音频时,Android SeekBar不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22211906/

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