android - 如何将音频进度更新为分钟
问题描述
目前在我的应用程序中,媒体播放正确,textView 也完美更新.. 在几秒钟内 0:00
下面是代码onProgressChanged
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
seekBarHint.setVisibility(View.VISIBLE);
int x = (int) Math.ceil(progress / 1000f);
if (x < 10)
seekBarHint.setText("0:0" + x);
if (x > 10)
seekBarHint.setText("0:" + x);
}
上面的代码正在正常工作..
我希望 textView 计时器在播放 0:59 秒后更新到 1:00
我试图更新代码如下:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
seekBarHint.setVisibility(View.VISIBLE);
int x = (int) Math.ceil(progress / 1000f);
if (x < 10)
seekBarHint.setText("0:0" + x);
if (x > 10)
seekBarHint.setText("0:" + x);
if (x >= 60 && x < 70)
x=0;
seekBarHint.setText("1:0" + x);
if (x > 70)
seekBarHint.setText("1:" + x);
}
但我从一开始就得到了textView "1.00"
。并在 0.59 秒后.. 它显示为1:060
1:061
等等...
如何x
在媒体播放 0.59 秒后将 的值更新为 0..
简而言之
我将 textView 值作为
0:00 到 0:59 然后 0:60 ...
我想要它作为
0:00 到 0:59 然后 1:00
解决方案
我更新我的代码如下,这对我有用:
public void SeekUpdation() {
if(mediaPlayer!=null) {
int mpos = mediaPlayer.getCurrentPosition();
seekBar.setProgress(mediaPlayer.getCurrentPosition());
mHandler.postDelayed(run, 1000);
int seconds = (mpos / 1000);
timerTextView.setText(String.format(secondsToString(seconds)));
}
希望这可以帮助某人...
推荐阅读
- swift - 如何在 UITableView 上使用显示字体设置 UIFont 系列和名称?
- amazon-web-services - 如何使用 AWS API 获取正在运行的 EC2 实例的目标组
- sql - 查询字符串列的 Redshift Spectrum 数组
- excel - 为 excel 选择数据 当我使用 sql 加载数据时,图表显示为零
- reactjs - React 渲染疯狂
- logstash - 如何在 Elasticsearch 中将大写字母更改为小写字母?
- oracle - 在 dbms_scheduler 作业 Oracle 中回调
- javascript - React 锚标记在单击时不断重定向到页面顶部
- html - CSS无法从项目符号列表中删除缩进
- asp.net-mvc - 如何模拟方法并返回由其回调设置的结果?