このチュートリアルに従って、オーディオ プレーヤーを作成しました。
次に、プレーヤーが特定の進行状況に達したときにイベントを発生させるイベントをいくつか追加します。 たとえば、現在のオーディオの 00:32 で、トーストを表示します。
インターフェイスは次のようになります。
白い点は、この場合のイベントを表します。何か案が?
私はそれを見つけました、これが私のコードです(完全に機能しました)
private ImageView CreateWhiteDot(int time) {
ImageView WhiteDot = new ImageView(getApplicationContext());
float x = 0;
float y = 0;
WhiteDot.setImageResource(R.drawable.stop_dot_inactive);
x = sbStopPlayerSlider.getX() + 15;
x += ((sbStopPlayerSlider.getWidth() - 30) * time * 1000)
/ mpAudioPlayer.getDuration();
WhiteDot.setX(x);
y = sbStopPlayerSlider.getTranslationY()
+ sbStopPlayerSlider.getHeight() / 2;
WhiteDot.setY(y);
return WhiteDot;
}
getDuration() メソッドを使用して、サポートされているオーディオ ファイルの合計時間を計算し、getCurrentPosition() メソッドを使用して、シークバーが目的のポイントまで進んだかどうかを調べます。それに応じてイベントを発生させます。