如何在Android中循环声音

问题描述:

按下按钮时,首先声音处于活动状态。然后再次按下该按钮它将停止并且第二个声音处于活动状态我的代码正常?如何在Android中循环声音

package com.Randomsentence; 
    import java.util.Random; 
    import android.app.Activity; 
    import android.content.res.Resources; 
    import android.os.Bundle; 
    import android.os.Handler; 
    import android.os.Message; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.TextView; 

    public class Randomsentence extends Activity { 
     boolean showRandom = false; 
     TextView txt; 
     int time = 30; 
     int random; 
     public String[] myString; 
     Button bt1; 
     boolean check = false; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     txt=(TextView)findViewById(R.id.txt); 
     bt1 = (Button)findViewById(R.id.bt1); 
     Medaiplayer mp = new Medaiplayer(); 
     Mediaplayer mp2 = new Mediaplayer(); 
     bt1.setOnClickListener(new View.OnClickListener() { 

      @Override 
     public void onClick(View v) { 
     // TODO Auto-generated method stub 
     showRandom = !showRandom; 
       t = new Thread() { 
        public void run() { 
         try { 
          while(showRandom){ 
     mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1); 
     mp.setLooping(true); 
     mp.start(); 
       mp2.reset(); 
       mp2.prepare(); 
       sleep(1000); 
       handler.sendMessage(handler.obtainMessage()); 
          } 
       mp.reset(); 
       mp.prepare(); 
      mp2 = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile2);  
      mp2.setLooping(true); 
      mp2.start(); 

       }catch(Exception ex){ 
        ex.printStackTrace(); 
       } 
        } 
       }; 
       t.start(); 

       } 

     }); 

    } 

     // our handler 
     Handler handler = new Handler() { 
     public void handleMessage(Message msg) {//display each item in a single line 
      { 

       Random rgenerator = new Random(); 
       Resources res = getResources(); 
       myString = res.getStringArray(R.array.myArray); 
       String q = myString[rgenerator.nextInt(myString.length)]; 
       txt.setText(q); 

      } 
     } 
     }; 
    } 

添加一行:

mp.setLooping(true); 

然后,当你想停止循环设置为false。

+0

哪一行我可以添加它 – user814154

+0

在调用.create(...)之后添加它,但在调用.start()之前添加它() – Kenny

+0

我已经编辑它了吗? – user814154

您的代码有几个错误。错别字,案件,

例:Medaiplayer应该是MediaPlayer的

仅此一点就足以导致错误。另外,在方法外声明你的变量是个好主意。