使用mediaPlayer -Android进行循环

时间:2012-11-29 05:43:00

标签: android android-mediaplayer

我的应用程序中有4个ToggleButtons。所有这些都是用于在应用程序中循环声音。所以,这意味着当我想点击第一个ToggleButoon并且其状态将打开时,音乐开始播放并保持循环直到其状态为 ON 。与ToggleButtons的其余部分相同。他们可能同时 ON (所有这些),所以我打算让4个媒体播放器循环播放。
这是我第一次使用TogglleButton的代码,即使只有一个人也没有运气......

    public MediaPlayer resourcePlayer;
    Context appContext = getApplicationContext();
    resourcePlayer = MediaPlayer.create(appContext,R.raw.loop1);
    .....
    .....
    public void onClick (View v){
    switch (v.getId()) {
    case R.id.toggleButton1:
    boolean on = ((ToggleButton) v).isChecked();

    if (on) {
    resourcePlayer.start();
    resourcePlayer.setLooping(true)
    }
    else {
    resourcePlayer.stop();
    }

    break;
    }

当我点击ToggleButton时没有任何反应,只有状态正在改变,因为我可以看到,LogCat也清除。谢谢)
UPD1:现在它正在循环,但是当我改变状态时它不会停止并保持循环 UPD2:resourcePlayer是主要活动中的公共
UPD3:我已经将MediaPlayer变量取出来onCreate menthod,所以不要复制。它播放和停止,但仅在Logcat提供错误消息后第一次

    MediaPlayer start called in state 0
    ....
    ....
    MediaPlayer stop called in state 0

2 个答案:

答案 0 :(得分:1)

你需要使用resourcePlayer.setLooping(true);或者是假的

你的UPD3:

因为你正在停止resourcePlayer,所以需要重新分配声源,但在你的情况下它只分配oncreate方法,它只是第一次调用。因此,每次你想停止播放后都需要重新初始化它。

答案 1 :(得分:1)

我认为这是因为您不断创建媒体播放器的新实例。因此,您始终将停止命令发送到新创建的媒体播放器对象,而不是当前播放的对象。