2

プログラムを作成したため、開始遅延なしで特定のオーディオクリップを継続的に再生したいのですが、私が言及したように機能していないので、誰かがこれを解決するのを手伝ってください

コード

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {
    LocalService mService;
    boolean mBound = false;
    Button btn1;
    Button btn2;
    MediaPlayer yourStereo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         btn1=(Button)findViewById(R.id.a_button);
         btn2=(Button)findViewById(R.id.b_button);


        btn1.setOnClickListener(this);


    }

    @Override
    public void onClick(View arg0) {
            // play music here
            btn1.setVisibility(Button.GONE);
            btn2.setVisibility(Button.VISIBLE);
            // TODO Auto-generated method stub
            yourStereo = MediaPlayer.create(this, R.raw.pl);
                    yourStereo.start();
                    yourStereo.setOnCompletionListener(new OnCompletionListener() {

                        @Override
                        public void onCompletion(MediaPlayer mp) {
                            // TODO Auto-generated method stub
                            yourStereo.start();
                        }
                    });
            // pause music here

            btn2.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    yourStereo.stop();
                    btn2.setVisibility(Button.GONE);
                    btn1.setVisibility(Button.VISIBLE);

                }
            });

    }
}
4

3 に答える 3

2

setLooping(true)もう一度再生するのではなく、MediaPlayer で再生しますonCompletion

http://developer.android.com/reference/android/media/MediaPlayer.html#setLooping(boolean)

プレーヤーをループまたは非ループに設定します。

ループをオンにすると、休憩なしで無限に繰り返されるため、自分で処理することを心配する必要はありません。

yourStereo = MediaPlayer.create(this, R.raw.pl);
yourStereo.setLooping(true);
yourStereo.start();
于 2013-06-25T08:57:56.237 に答える
1

MediaPlayer の代わりに、SoundPool を低遅延のメディア再生に使用します。

于 2013-06-25T08:59:20.883 に答える