MediaPlayer.seekTo(int msec) メソッドに問題があります。基本的に、ストリームの進行状況を追跡するために SeekBar を使用しています (.mp3 ファイルがストリーミングされています)。ユーザーがシーク バーを移動して、ストリームの別の部分をシークできるようにします。シークするときは、OnSeekBarChangeListener で onStopTrackingTouch() を使用して、シーク先を正確に追跡します。次に、このミリ秒の値をストリーミング サービスに渡します。
Intent intent = new Intent(mContext, StreamingService.class);
intent.setAction(StreamingService.SERVICE_SEEK_TO);
intent.putExtra(StreamingService.EXTRA_SEEK_TO, seekBar.getProgress());
mContext.startService(intent);
ストリーミング サービスはこのインテントを処理し、mediaPlayer.seekTo() の呼び出しを試みます。これは私の Froyo および Gingerbread デバイスでは正常に動作しますが、JellyBean デバイスでは動作しません。たとえば、40,000 ミリ秒をシークすると、私の JellyBean デバイスは 10,000 ミリ秒に戻ります。一方、Gingerbread または Froyo では、シークは実際に機能し、40,000 ミリ秒から再生されます。JellyBean の MediaPlayer に問題はありますか?