1

私はここで車輪の再発明をしていますが、私は初心者プログラマーなので、これを行うための最良の方法に興味があります...

Androidアプリの一部として、私は非常にシンプルなメディアプレーヤーを開発しています。ファイルを再生します。am:sタイマーが必要なので、ユーザーはファイルのどこまで進んでいるかを確認できます(例:「04:56」)。私はおそらく明白なことを見逃していますが、これを行うための最良の方法は何ですか?

1つの方法は、1000ミリ秒間スリープする新しいスレッドを生成してから、MediaPlayer.getCurrentPosition()を呼び出してUIを更新することです。ただし、これは少しばかげているようです。私のスレッドが毎秒戻るとは限らないため、不正確な時間を表示することになります。これを行うためのより良い方法があるはずですか?

私を教育してください(または私のためにリンクしてください)。

4

2 に答える 2

3

Handler#postDelayed()またはを使用View#postDelayed()して、1秒に1回の更新を実行します。これにより、スレッドをフォークする必要がなくなり、後のクリーンアップも不要になります。

これは、 MediaPlayerの進行状況に基づいてタイムカウンターを更新するという、目的に合わせた特定の手法を使用したプロジェクトです。

于 2009-11-04T18:04:46.613 に答える
0

1つの代替手段は、音楽の開始時に独立したタイマーを開始することです。MediaPlayer.getCurrentPosition()を5秒ごとに1回程度呼び出して「同期」させ、時刻が正確に保たれるようにします。

于 2009-11-04T17:58:13.117 に答える