2011-07-29 19 views
0

私は実際に両方の両方でいくつかの助けを使用することができるカップルの問題を抱えています。最初は、アプリケーションが起動されたときにオーディオファイルを再生しようとしていて、手ぶれが発生すると直ちに停止します。 (どちらの画面でもそれを再生していません)。もう一つの問題は、オーディオが再生されるはずの電話を揺することです。それだけでやっていますが、問題はオーディオ再生の終わりにポップ音がすることです。そのノイズはオーディオファイルにはないので、そのサウンドがどこから来ているのか正確にはわかりません。どんな助けもありがとう。前もって感謝します。オーディオ再生の最後にクリックノイズが発生しています。

public class Ask extends Activity{ 
private SensorManager mSensorManager; 
private ShakeEventListener mSensorListener; 
String[] answer; 
int possibleAnswers, randomAnswer, talkRun=0; 
long lastClick; 


@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.ask); 

     final Random generator = new Random(); 




     //Sounds 
     final SoundPool sounds = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 
     final int sound0 = sounds.load(this, R.raw.coughing, 1); 

     final int sound25 = sounds.load(this, R.raw.askbud, 1); 


     sounds.play(sound25, 1f, 1f, 1, 0, 1f); 

     mSensorListener = new ShakeEventListener(); 
     mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
     mSensorManager.registerListener(mSensorListener, 
      mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
      SensorManager.SENSOR_DELAY_UI); 

     final TextView tv = (TextView)findViewById(R.id.answer); 


     mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() { 

      public void onShake() { 
       if (System.currentTimeMillis() - lastClick > 500) { 
        lastClick = System.currentTimeMillis(); 
         sounds.stop(sound25); 
        sounds.stop(sound0); 


         randomAnswer = generator.nextInt(possibleAnswers); 


         if(randomAnswer==0){ 
         sounds.play(sound0, 1f, 1f, 1, 0, 1f); 
         } 

       } 
      } 
     }); 
    } 





@Override 
    protected void onResume() { 
    super.onResume(); 
    mSensorManager.registerListener(mSensorListener, 
     mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
     SensorManager.SENSOR_DELAY_UI); 
    } 

    @Override 
    protected void onStop() { 
    mSensorManager.unregisterListener(mSensorListener); 
    super.onStop(); 
    } 

}

+0

うわー!それは消化するコードの全面的な助けだ。 1つのサウンドで動作させてから、25の別々のサウンドに失敗するコードをサイトにダンプすることは決してありませんでしたか?また、私はここに 'java'タグを追加することを承認しません。 Javaでは、JavaSoundを使用してサウンドを再生します.Androidはまったく別の話です。 –

+0

サウンド(onCreateサウンドを除く)がすべて再生されます。私が持っている他の唯一の問題は、音の終わりにポップノイズです。そして、誰かがこの問題をある時点で抱えているのではないかと思っています。 – steven

答えて

0

私は切り替えることによってそれを修正サウンドプールの使用からメディアプレーヤーの使用まで。また、release()を確実にするか、サウンドの再生が停止するなどの他の問題を引き起こしていました。

1

(あなたはそれを呼び出すようまたはポップ)また、私は遊んでいた音の終わりに、この音のクリック問題を抱えていました。私のファイルは.wavファイルでしたが、サウンドファイルを.oggに変換した後、クリック音が消えました。 Androidエミュレータでこれが発生しました。

関連する問題