【问题标题】:Stop and Replay an audio file停止并重播音频文件
【发布时间】:2015-07-25 07:51:21
【问题描述】:

我想要完成的是我停止了音乐,然后当我再次按下播放按钮时,媒体播放器将播放它。 但我现在面临的问题是按下停止按钮后,我无法再次播放音乐。 这是我的代码:

Button play,pause,stop;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.audio_beginagain);

    play = (Button) findViewById(R.id.play);
    pause = (Button) findViewById(R.id.pause);
    stop = (Button) findViewById(R.id.stop);

    final MediaPlayer sound = MediaPlayer.create(Audio_BeginAgain.this, R.raw.beginagain);
    final MediaPlayer mp = new MediaPlayer();

    play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sound.start();
        }
    });

    pause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sound.pause();
        }
    });

    stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sound.stop();
        }
    });



}

【问题讨论】:

  • 停止按钮点击后需要重新初始化MediaPlayer。

标签: android audio


【解决方案1】:

您可以简单地添加一个完成侦听器,然后使用mediaPlayer.seekto(0)start()

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mediaPlayer.seekTo(0);
                mediaPlayer.start();
            }
        });
}

【讨论】:

    【解决方案2】:

    这正是 Md Abdul Gafur 所说的......

    每次您想重新播放 MediaPlayer 时,都必须使用 create() 对其进行新的初始化。

    看这段代码:

    public class PlayaudioActivity extends Activity {
    
        private MediaPlayer mp;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Button b = (Button) findViewById(R.id.button1);
            Button b2 = (Button) findViewById(R.id.button2);
            final TextView t = (TextView) findViewById(R.id.textView1);
    
            b.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    stopPlaying();
                    mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far);
                    mp.start();
                }
    
            });
    
            b2.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    stopPlaying();
                    mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet);
                    mp.start();
                }
            });
        }
    
        private void stopPlaying() {
            if (mp != null) {
                mp.stop();
                mp.release();
                mp = null;
           }
        }
    }
    

    代码复制自:Android MediaPlayer Stop and Play

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多