如何将音频进度更新为分钟
how to update audio progress to minutes
目前在我的应用程序中,媒体可以正常播放并且 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
等等...
如何在媒体播放0.59秒后将x
的值更新为0..
简而言之
我得到的 textView 值是
0:00 to 0:59 then 0:60 ...
我想要它
0:00 to 0:59 then 1:00
根据 pskink in the comments above and this link 参考的建议..
我更新我的代码如下,它对我有用:
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)));
}
希望这可能对某人有所帮助...
如果 x
是以秒为单位的时间,那么这个简单的行应该可以工作。
seekBarHint.setText(String.format(secondsToString(x))
private String secondsToString(int pTime) {
return String.format("%02d:%02d", pTime / 60, pTime % 60);
}
目前在我的应用程序中,媒体可以正常播放并且 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
等等...
如何在媒体播放0.59秒后将x
的值更新为0..
简而言之
我得到的 textView 值是
0:00 to 0:59 then 0:60 ...
我想要它
0:00 to 0:59 then 1:00
根据 pskink in the comments above and this link 参考的建议..
我更新我的代码如下,它对我有用:
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)));
}
希望这可能对某人有所帮助...
如果 x
是以秒为单位的时间,那么这个简单的行应该可以工作。
seekBarHint.setText(String.format(secondsToString(x))
private String secondsToString(int pTime) {
return String.format("%02d:%02d", pTime / 60, pTime % 60);
}