

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

**発生している問題**

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

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

\-----（ここまではできています）

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

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

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

> MediaPlayer finalized without being released
[code]

    //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) {
            }
        }
    
[/code]


CC BY-SA 3.0
2015-12-14T13:42:03.323
19975
2015-12-14T13:42:03.323
12349
question
android java
Android｜MediaPlayerでのエラー