私は自分のアプリケーション用のカスタムメディアコントローラを書くつもりです。私はシークバーを使って進歩を見せたり進めたりすることを計画していました。これを実装しようとしています。アンドロイドのSeekbarをseekBarと同時にprogressBarとして使用する方法は?
誰もそのような実装をしているのですか、間違ったパスにいますか?
私は自分のアプリケーション用のカスタムメディアコントローラを書くつもりです。私はシークバーを使って進歩を見せたり進めたりすることを計画していました。これを実装しようとしています。アンドロイドのSeekbarをseekBarと同時にprogressBarとして使用する方法は?
誰もそのような実装をしているのですか、間違ったパスにいますか?
最後に私はそれを理解しました!ビデオの期間
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
seekBar.setMax(videoView.getDuration());
seekBar.postDelayed(onEverySecond, 1000);
}
});
この実行可能にプログレスバーを更新し続けますよう、すべての最初には、シークバーの最大の進歩を設定
:私が思いついた
ソリューションは、このようなものでした:
private Runnable onEverySecond=new Runnable() {
@Override
public void run() {
if(seekBar != null) {
seekBar.setProgress(videoView.getCurrentPosition());
}
if(videoView.isPlaying()) {
seekBar.postDelayed(onEverySecond, 1000);
}
}
};
そして、シークバーのためsetOnSeekBarChangeListenerは、ユーザーを取るために使用することができますが、メディアに求めています。 FROMUSERブールを使用することにより、我々は、それが原因のユーザの対話にコールバックまたは返信用
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser) {
// this is when actually seekbar has been seeked to a new position
videoView.seekTo(progress);
}
}
});
seconday progressを設定します。
いいえ、あなたは正しい方向にあります。ストリーム(メディア)のダウンロードの進行状況や現在地などの情報を表示するのに非常に適しています。
おかげだったかどうかを作ることができます。 しかし、私はストリーミング量を表示するためにセカンダリ進捗状況を使用しています。 私は私が思いついたものの下に投稿しています。 –
素晴らしい!ビデオが終了するときに 'videoView.start()'を再生したい場合は、再びseekBarが動作しないので、この問題を解決するにはどうすればいいですか? –