0

ViewPager に 2 つの Fragment があります。最初のフラグメントは利用可能なすべての mp3 ファイルを一覧表示し、2 番目のフラグメントは実際に再生を行います (MediaPlayer ロジックを実装します)。

最初のフラグメントでは、mp3 ファイルの長さをリストしたいと思います。すべての mp3 ファイルはメディア ファイルからロードされているため、それらのファイルの長さを取得するにはどうすればよいですか?

私は次のことを試しました:

初期宣言:

MediaPlayer mediaPlayer;

コードの実装:

mediaPlayer.setDataSource(mp3URL);
totalDuration = utils.milliSecondsToTimer(mediaPlayer.getDuration());

MilliSecondsToTimermilliseconds文字列を3:40フォーマットに変換します。

最終申請:

duration.setText(totalDuration);

これを行うと、次のエラーが表示されます。

10-08 03:38:03.341: E/MediaPlayer(2586): Attempt to call getDuration without a valid mediaplayer
10-08 03:38:03.361: E/MediaPlayer(2586): error (-38, 0)
10-08 03:38:03.461: E/MediaPlayer(2586): Error (-38,0)

URLから合計時間を抽出するにはどうすればよいですか?? 助けてください。

4

2 に答える 2

0

mediaPlayer.getDuration()準備が完了する前に取得しようとしています。メソッドを使用しsetOnPreparedListener()て準備リスナーを設定しgetDuration()、準備が完了した後にのみメソッドを呼び出します。

mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  public void onPrepared(MediaPlayer mp) {
      totalDuration = utils.milliSecondsToTimer(mediaPlayer.getDuration());
  }
});
于 2013-10-08T08:05:43.707 に答える