3

MediaPlayer に従って SeekBar を更新しています。進行状況を更新するために時々停止し、スタックしてしまい、同じ値を取得しています。(ただし、音は途切れることなく続きます。) これらは私の logcat メッセージです。進行状況を出力します。何故ですか?(Android 4.0以降、Android 2.2を搭載した他の電話ではそのような問題がないことに気付きました)

01-28 16:41:21.446: D/MyMediaPlayer(10342): progress:  56 / 10472
01-28 16:41:21.501: D/MyMediaPlayer(10342): progress:  107 / 10472
01-28 16:41:21.556: D/MyMediaPlayer(10342): progress:  158 / 10472
01-28 16:41:21.610: D/MyMediaPlayer(10342): progress:  209 / 10472
01-28 16:41:21.657: D/MyMediaPlayer(10342): progress:  261 / 10472
01-28 16:41:21.704: D/MyMediaPlayer(10342): progress:  311 / 10472
01-28 16:41:21.759: D/MyMediaPlayer(10342): progress:  362 / 10472
01-28 16:41:21.806: D/MyMediaPlayer(10342): progress:  413 / 10472
01-28 16:41:21.837: D/dalvikvm(307): GC_CONCURRENT freed 1835K, 16% free 19932K/23495K, paused 3ms+12ms, total 101ms
01-28 16:41:21.860: D/MyMediaPlayer(10342): progress:  458 / 10472
01-28 16:41:21.907: D/MyMediaPlayer(10342): progress:  514 / 10472
01-28 16:41:21.962: D/MyMediaPlayer(10342): progress:  565 / 10472
01-28 16:41:22.009: D/MyMediaPlayer(10342): progress:  616 / 10472
01-28 16:41:22.063: D/MyMediaPlayer(10342): progress:  667 / 10472
01-28 16:41:22.118: D/MyMediaPlayer(10342): progress:  718 / 10472
01-28 16:41:22.165: D/MyMediaPlayer(10342): progress:  770 / 10472
01-28 16:41:22.212: D/MyMediaPlayer(10342): progress:  820 / 10472
01-28 16:41:22.267: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.313: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.368: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.415: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.470: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.524: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.571: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.626: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.673: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.727: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.774: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.829: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.884: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.931: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:22.985: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.032: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.087: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.142: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.188: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.243: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.290: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.345: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.392: D/MyMediaPlayer(10342): progress:  2048 / 10472
01-28 16:41:23.454: D/MyMediaPlayer(10342): progress:  2054 / 10472
01-28 16:41:23.501: D/MyMediaPlayer(10342): progress:  2105 / 10472
01-28 16:41:23.556: D/MyMediaPlayer(10342): progress:  2155 / 10472
01-28 16:41:23.602: D/MyMediaPlayer(10342): progress:  2207 / 10472
01-28 16:41:23.657: D/MyMediaPlayer(10342): progress:  2258 / 10472
01-28 16:41:23.712: D/MyMediaPlayer(10342): progress:  2309 / 10472
01-28 16:41:23.751: D/MyMediaPlayer(10342): progress:  2360 / 10472
01-28 16:41:23.813: D/MyMediaPlayer(10342): progress:  2411 / 10472
4

1 に答える 1

3

getCurrentPosition()正しい値を返さないという同様の問題に気付いたことがあります。

ここを参照してください: Acer Iconia A200 での VideoView getCurrentPosition() の不規則性

間違った位置を返す原因がわかりませんでした。ただし、私が採用した回避策は、ビデオを開始したタイムスタンプを保存し、そのタイムスタンプを参照してビデオの再生時間を判断することで、自分で時間を追跡することでした. 冗長に思えますが、組み込みのメソッドがそうでない場合、これは少なくとも正しい値を与えてくれます。

于 2013-01-28T16:51:12.223 に答える