5

MediaPlayerクラスを使用したAndroidでのmp3ファイルのストリーミングに関するIgorKhrupinのチュートリアルに従いました:http ://www.hrupin.com/2011/02/example-of-streaming-mp3-mediafile-with-android-mediaplayer-class

シークバーの主な進行状況が正しく更新されていないことを除いて、これはすべて正常に機能しています。開始直後に停止します。これをデバッグすると、mp3曲が正常に再生されている場合でも、MediaPlayer.getCurrentPosition()メソッドが常に261(ミリ秒)を返していることがわかります。

誰かが以前にこの問題に遭遇したか、それを修正する方法について何かアイデアを持っていますか?

どうもありがとう

4

2 に答える 2

1

私も同じ問題を抱えていました。setAudioStreamType(int)メソッドを使用してストリームのタイプを決定することで問題を解決しました。

Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
于 2018-07-14T17:08:20.410 に答える
0

ここで問題を見つけました。まず、私が実行していたエミュレーターではオーディオがオンになっていないため、Eclipse の AVD マネージャーにオーディオ対応のブール値を追加する必要がありました。オーディオがオンになっていないことが原因で、常に 261 ミリ秒が返されていました。また、2 つ目の問題がありました。以下の 2 つのコード スニペットを参照してください。1 つ目は私のコードで、2 つ目はチュートリアルのコードです。微妙な違い (ブラケットの数) があり、最初のものは常に 0 に評価されます。

seekBarProgress.setProgress((int)((float) mediaPlayer.getCurrentPosition() / getMp3Duration()) * 100);

seekBarProgress.setProgress((int) (((float) mediaPlayer.getCurrentPosition() / getMp3Duration()) * 100));
于 2012-11-06T11:02:40.550 に答える