0

加速度計の値から次の「if 条件」があり、デバイスが平らなときにビープ音が連続して再生されます。このサウンドを指定した時間 (例: 5 秒) の間繰り返す方法がわかりません。私は多くの方法を試しましたが、常にサウンドがまだ再生されているか、if 条件に従っていません。誰かが私を助けることができれば..事前にありがとう..

if (x > -0.1 && x < 0.1 && y > -0.1 && y < 0.1) {
  try {
    AssetFileDescriptor afd = getAssets().openFd("beep.wav");
    mMediaplayer = new MediaPlayer();
    mMediaplayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
    afd.close();
    mMediaplayer.prepare();
    mMediaplayer.start();
    mMediaplayer.setOnCompletionListener(new OnCompletionListener() {
      public void onCompletion(MediaPlayer mp) {
        //mp.setLooping(false);
        mp.stop();
        mp.release();
      }
    });
  } catch (Exception e) {
    e.printStackTrace();
  }
}
4

2 に答える 2

0

バックグラウンドで新しい非同期タスクでメディア プレーヤーを再生しないのはなぜですか? 独自の非同期タスクの実装を作成し、そのコンストラクターに時間値を渡し、そこでメディアプレーヤーを開始し、経過時間が渡された値と等しいかどうかを確認します。参考になると思います -->

http://developer.android.com/reference/android/os/AsyncTask.html

于 2013-04-09T12:09:02.613 に答える