0

mp3ポッドキャストを実行するための次のコードがあります

public void playPodcast( final Uri data){
            new Thread (new Runnable(){
                public void run() {
                  if(!mediaPlayer.isPlaying()){
                        try {
                            mediaPlayer.setDataSource(getApplicationContext(), data);
                        } catch (IllegalArgumentException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (SecurityException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IllegalStateException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        try {
                            mediaPlayer.prepare();
                        } catch (IllegalStateException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } 
                        mediaFileLengthInMilliseconds = mediaPlayer.getDuration();
                        duracaoPodcast = mediaPlayer.getDuration();

                        mediaPlayer.start();


                        if(!(controlTimer >= 1)){
                            timer();
                            controlTimer++;
                        }

                        primarySeekBarProgressUpdater();


                }
              } 
            }).start();
        }

ユーザーインテントを閉じるには、次のようにします。

  voltar.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    finish();
                    mediaPlayer.stop();
                }
            });

この問題は、Androidを搭載したすべてのリターンボタン電話が次の理由ではないという意図をユーザーが閉じたときに発生します。

finish();
mediaPlayer.stop();

のみ作成:

finish();

そのため、一時停止の意図に戻っても、オーディオはまだ再生されています。

stop.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                if(mediaPlayer.isPlaying()){
                    mediaPlayer.stop(); 
                    frame.setVisibility(View.INVISIBLE);

                }

            }
        });

ボタンが機能せず、再生を押すと、空になった再生の上に新しいオーディオが開始されます。

解決する方法はありますか?

4

1 に答える 1

0

私があなたの質問を理解した限りmediaPlayer.stop();、活動方法を入れてください。onStop()

于 2012-05-22T15:00:38.150 に答える