0

我正在实现用于创建媒体播放器的 Android 应用程序。我已正确运行该应用程序以在按钮单击时播放音乐。当我单击 button_Start 时,音乐开始播放并单击相同的 button_Start 暂停和恢复/开始。当 button_Start 被单击时,我的 button_Second 被禁用,当 button_Start 单击暂停时 button_Second 被正确禁用。但是我想在声音剪辑结束时启用 button_Second 并且禁用 button_Start 。运行应用程序时出现错误 (IllegelStateException)。我不知道我该怎么做。任何人都可以帮助我。在此先感谢。

这是我的代码。这是 y Audio_Activity 类。

public class Audio_Activity extends Activity
{
    private  MediaPlayer mp;
    Button btnStartStop ;
    Button btnChapter ;


    ImageView imgVw;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.audio);
        init();


        mp=MediaPlayer.create(this,R.raw.ennamo_yadho);
        Log.e("Song is playing","in  Mediya Player ");

        System.out.println("B4 button Click!!!!");


        System.out.println("After Button click !! ");
        if(mp!=null)
        {
            mp.stop();
            mp.release();
            System.out.println("Media Player Is Stop and release");

            btnChapter.setEnabled(true);
            System.out.println("btnChapter is enabled when media player is 
                         release !!!");

        }

        btnStartStop.setOnClickListener(new OnClickListener()
        {

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

                if(mp.isPlaying())
                {
                    if(mp!=null)
                    {
                            mp.pause();
                        imgVw.setImageResource(R.raw.images1);
                        btnChapter.setEnabled(true);

                    }
                }

                else
                {
                    // Resume song
                    if(mp!=null)
                    {
                            mp.start();
                        imgVw.setImageResource(R.raw.teddy_two);
                        btnChapter.setEnabled(false);


                    }


            }}
        });



    }


    public void init()
    {
        imgVw=(ImageView)findViewById(R.id.display_Images);


        btnStartStop=(Button) findViewById(R.id.btnPause_Resume);
        btnChapter=(Button) findViewById(R.id.btnChapter);


    }

}
4

1 回答 1

1

您可以在声音剪辑开始时禁用该按钮,然后使用类 ( linksetOnCompletionListener ) 的方法注册一个将再次启用该按钮的处理程序。希望有帮助:)MediaPlayer

于 2013-07-05T10:26:04.933 回答