ストリーミング再生を作っているのですが、下記のエラーが発生し、
うまくいきません。

発生している問題

下記の流れで音声ファイルを再生・停止させたいのですが、
4, 5番の処理がうまくいきません。

  1. 再生ボタンをタップ
  2. 音声ファイルを再生
  3. 音声ファイルを停止

-----(ここまではできています)

  1. 再度、再生ボタンをタップ
  2. アプリが強制停止

つまり、音声を再生してから停止後、
再度ファイルを再生させるとアプリが強制的に落ちてしまいます。

下記、エラーメッセージになります。

MediaPlayer finalized without being released

//xmlのIDからImageViewを取得
final ImageView iv = (ImageView) convertView.findViewById(R.id.sampleItem);
        //ImageViewにクリックリスナーをセット
        iv.setOnClickListener(new View.OnClickListener() {
            //クリックした時
            @Override
            public void onClick(View view) {
                //ストリーミング音声再生タイプとURLをセット
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                String audioUrl = "ここにストリーミング用のURLを入れています";

                //if文で再生と停止を分岐処理
                if (mediaPlayer == null || !mediaPlayer.isPlaying()) {
                    //メソッドの呼び出し
                    stopBGM();
                    try {//音声再生処理
                        //再生中の場合は、停止ボタンをセット
                        iv.setImageResource(R.drawable.stop_btn);
                        mediaPlayer.setDataSource(audioUrl);
                        //音声再生の準備
                        mediaPlayer.prepare();
                        //音声再生のスタート
                        mediaPlayer.start(); // 再生
                    } catch (Exception e) {
                    }
                } else {//音声停止処理
                    //音声停止中は、再生ボタンをセット
                    iv.setImageResource(R.drawable.play_btn);
                    //メソッドの呼び出し
                    stopBGM();
                }
            }
        });

        //音声停止メソッドを定義
        private void stopBGM() {
        if (mediaPlayer == null) return;
        try {
            //停止処理
            mediaPlayer.stop();
            mediaPlayer.release();
            mediaPlayer = null;
        } catch (Exception e) {
        }
    }