如何在...播放音乐一次?

时间:2012-10-19 18:47:10

标签: java android media-player listitem

我想要的共享偏好设置中有一个复选框: 如果复选框为true,则此歌曲将在activity1上播放。 打开列表项时,只需启动activity1。 在activity1我有一个班级来检查共享偏好并播放歌曲,所以:

当打开每个列表项时,它播放歌曲,并在打开每个列表项时播放许多歌曲。 如何在这项活动中只播放一首歌。

它呼吁每个列表项:

protected void All()
{
    boolean music = sharedpreferences.getBoolean("musictype", false);
    if (music) { mp1.start(); } else { mp1.stop();}      
}                           

1 个答案:

答案 0 :(得分:0)

public class Activity1 extends Activity {
    boolean hasPlayed;
    boolean shouldPlayMusic;

    public void onCreate(Bundle savedInstanceState) {
        hasPlayed = false;
        SharedPreferences prefs = PreferenceManager.getDefaultSharePreferences();
        shouldPlayMusic = prefs.getBoolean("musictype", false);
        //other initialization
    }

    protected void All() {
        if(shouldPlayMusic && !hasPlayed) {
            //Should check state of MediaPlayer too
            mp1.start();
            hasPlayed = true;
        }
    }
}

基本上是这样的。保留一个布尔标志,表示您是否已经播放过一次,并在播放之前检查该优先级值。一旦你玩了它,设置标志,使其不再播放。