一旦停止,如何启动媒体播放器

时间:2014-03-19 11:10:23

标签: android

我在我的应用中添加了两个按钮,一个用于播放,另一个用于启动。一旦我启动应用程序,歌曲就会自动开始播放。当我按下停止它停止但当我按下播放时它不会再次启动

要停止我使用了mediaplayer.stop()正常工作

开始使用

mediaplayer.start() 

无效

根据流程图给出我们需要使用

prepare() 

然后

OnPreparedListener.onPrepared() 

然后

start()

我不知道如何使用这些功能。请帮帮我

4 个答案:

答案 0 :(得分:3)

请勿致电stop()来阻止媒体播放器使用reset()。我没有充分的理由。但是,它肯定会起作用。

 // for stopping it call below statement 
    if(mediaPlayer.isPlaying())
    mediaPlayer.reset();

    //for playing it again 
    mediaPlayer.prepare();
    mediaPlayer.start();

答案 1 :(得分:2)

要重新启动媒体播放器,请使用以下代码。

if (mediaplayer != null) {
        mediaplayer.start();
        }

还有一件事,而不是使用

mediaplayer.stop()

使用

mediaplayer.pause();

所以它会暂停当前的歌曲而不是停止。

只需检查条件是否为空。

答案 2 :(得分:1)

在Play Button

上尝试以下代码
mp.reset();
mp.setDataSource(song path);
mp.prepare();
mp.start();

mp.setDataSource(song path); not necessary if you playing same sound again

答案 3 :(得分:0)

MediaPlayer mp;


@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.singleitemview);
        btnsound=(Button)findViewById(R.id.play_sound);
        btnstopsound=(Button)findViewById(R.id.stop_sound);
        mp=new MediaPlayer();

        btnsound.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                try {
                    mp.setDataSource(Sound);
                } 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 {
                    mp.prepare();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                    mp.start();
                    mp.setLooping(true);


                }



        });

        btnstopsound.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mp.setLooping(false);
                mp.stop();
            }
        });




    }