2012-06-05 88 views
1

我是java的新手。我試圖一一播放他們,但我得到一個錯誤。 如何將兩個音頻文件合併爲一個?請幫幫我。如果用戶鍵入不同的文字,它應該播放不同的聲音我知道在聲音開始之間應該有些停頓,但我該怎麼做。我也可以結合每個字母的所有聲音,然後播放整個聲音?您的評論結合兩個音頻文件

setContentView(R.layout.main); 
    Button bStart = (Button) findViewById(R.id.bStart); 
    final EditText etStart = (EditText) findViewById(R.id.etStart); 
    final EditText etFinish = (EditText) findViewById(R.id.etFinish); 
    final char[] arr = etStart.getText().toString().toCharArray(); 
    final MediaPlayer as = MediaPlayer.create(R2d2Activity.this, R.raw.as); 
    final MediaPlayer bs = MediaPlayer.create(R2d2Activity.this, R.raw.bs); 
    final SoundPool sp; 
    final int a; 
    sp = new SoundPool(2, AudioManager.STREAM_MUSIC, 0); 
    a = sp.load(this, R.raw.as, 1); 
    bStart.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      for (int i=0; i<1; i++){ 
       String value = etStart.getText().toString(); 
       String first = value.substring(i, i + 1); 
       if(first.contentEquals("a")){ 
       sp.play(a, 100, 100, 0, 0, 1); 
       }if(first.contentEquals("b")){ 
       sp.play(b, 100, 100, 0, 0, 1); 
       } 
      } 
+2

一些代碼會很好... – brimborium

+0

問你的設計師他會做那一個... – NagarjunaReddy

+0

請提供更多信息。我的第一個猜測是,你的問題是兩個audiofiles同時播放? – kutschkem

回答

0

基地,我想你應該閱讀的Soundpool文件:

http://developer.android.com/reference/android/media/SoundPool.html

final void pause(int streamID); // Pause a playback stream. 

它應該幫助你。


編輯: 如果你想迫使你的程序暫停所有的聲音,那麼你就可以分離你的聲音播放到一個獨立的線程。在一段時間內睡覺你的線程。

+0

它不會幫助我因爲我想暫停整個程序的聲音持續時間。我試過wait(getDuration(聲音));使用MediaPlayer,但它不起作用 – user1437450

+0

@ user1437450我編輯了我的答案。請檢查一下! – jaselg