如何使用播放/暂停切换和seekBar小部件制作停止按钮功能

时间:2016-05-09 09:40:31

标签: java android

我一直试图通过MediaPlayer包在我的android studio应用程序中停止我的歌曲。我已将我的歌曲放在应用程序中,当我播放它并暂停时它播放得很好。但是,当我按下停止功能后播放歌曲或暂停歌曲时,它意外地使应用程序崩溃,说“不幸的是,PlayPauseStop已停止”。我可以肯定停止功能正在发生,但我不太确定我需要做什么才能停止实际的歌曲并从头开始重启。另外,我试图添加一个读取歌曲持续时间长度的seekBar。我确信我需要做setDuration();, setMax();等等。我将感谢任何有用的资源,我可以用它来跟踪我想要做的事情。到目前为止,这是我的代码,而不是最好的代码:

package com.example.hamzeh.playpausestop; 
import android.media.MediaPlayer;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.SeekBar;

public class MainActivity extends AppCompatActivity {
SeekBar seek_bar;
int pause;
protected static MediaPlayer Sound;

//

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

    Sound = MediaPlayer.create(MainActivity.this, R.raw.music);


}

public void onToggleClicked(View view)
{
    boolean checked = ((ToggleButton)view).isChecked();

    if (checked && !Sound.isPlaying() && Sound!=null)
    {
        Sound.start();
        //Play the song
    }
    else if (Sound.isPlaying())
    {
        Sound.pause();
        pause = Sound.getCurrentPosition();
        //Pause on the current position
    }
    else
    {
        Toast.makeText(MainActivity.this, "Something Is Wrong", Toast.LENGTH_SHORT).show();
        //Shows a message if the music is not existing in the raw file
    }

}

public void stop(View view)
{
    Sound.release();
    Sound = null;

}

}

(我正在尝试学习如何使用Android Studio)

2 个答案:

答案 0 :(得分:1)

为什么你发声=空,任何具体原因? 在停止时你可以打电话给休息

答案 1 :(得分:0)

尝试使用stop方法而不是release()。释放方法结束媒体播放器对象的生命周期。 Stop()方法应该做得很好