2017-02-01 11 views
0

私たちは4-5人のY/Oの子供をテストしました。実際にはうまく動作します。時には質問音が再生されていません。そして、それが次の質問を再生しない場合は、オーディオを停止しないで、2つ以上のオーディオを同時に再生すると、ボタンが速くなります。Androidスタジオでオーディオを再生する問題

質問音が出るごとに(raw.kirmizi、raw.yesil)する必要があります。

私は4/5以上の答えに該当する場合、私はあなたが良い(raw.alkis)だサウンドを再生する必要が

(secenek1、secenek2、secenek3)子供が答えをクリックしたときに音を停止する必要があり

3/5以下の答えなら、私は

真(raw.tekrar)難しい音作品をプレイする必要があり、子供が戻ってクリックした場合も(secenek2)はraw.alkisまたはraw.tekrar音が停止する必要があります。

私たちのクラスのコードは次のようである:

package tr.com.blogspot.etkinlikhavuzu.benimilkogretmenim; 
 

 
import android.app.Activity; 
 
import android.content.Intent; 
 
import android.media.AudioManager; 
 
import android.media.SoundPool; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.view.Window; 
 
import android.view.WindowManager; 
 
import android.widget.ImageView; 
 
import android.widget.TextView; 
 
import android.widget.Toast; 
 

 
import java.util.ArrayList; 
 
import java.util.Random; 
 

 
public class AA extends Activity implements View.OnClickListener { 
 

 
    TextView soru, sonuc, dogrusayi, yanlissayi; 
 
    ImageView secenek1, secenek2, secenek3; 
 
    ArrayList<Soru> sorular; 
 
    Random random; 
 
    int dogruSayisi, yanlisSayisi, sayac, dogruCevap, kalanSoruSayisi; 
 
    SoundPool soundPool, soundPoolDogru, soundPoolYanlis; 
 
    int sound, dogruSound, yanlisSound; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 
     setContentView(R.layout.aa); 
 

 
     init(); 
 

 
     sorulariYukle(); 
 
    } 
 

 
    public void init() { 
 
     secenek1 = (ImageView) findViewById(R.id.secenek1); 
 
     secenek1.setOnClickListener(this); 
 
     secenek2 = (ImageView) findViewById(R.id.secenek2); 
 
     secenek2.setOnClickListener(this); 
 
     secenek3 = (ImageView) findViewById(R.id.secenek3); 
 
     secenek3.setOnClickListener(this); 
 

 
     soru = (TextView) findViewById(R.id.soru); 
 
     sonuc = (TextView) findViewById(R.id.sonuc); 
 
     dogrusayi = (TextView) findViewById(R.id.dogrusayi); 
 
     yanlissayi = (TextView) findViewById(R.id.yanlissayi); 
 

 
     sorular = new ArrayList<Soru>(); 
 

 
     random = new Random(); 
 

 
     kalanSoruSayisi = 5; 
 

 
     soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0); 
 
     soundPoolDogru = new SoundPool(2, AudioManager.STREAM_MUSIC, 0); 
 
     soundPoolYanlis = new SoundPool(2, AudioManager.STREAM_MUSIC, 0); 
 

 
     dogruSound = soundPoolDogru.load(this, R.raw.alkis, 1); 
 
     yanlisSound = soundPoolYanlis.load(this, R.raw.tekrar, 1); 
 
    } 
 

 
    public void sorulariYukle() { 
 
     sorular.add(new Soru("Hangi Elma Yeşildir?", R.raw.yesil, R.drawable.yesilelma, R.drawable.kirmizielma, R.drawable.kirmizielma, R.drawable.yesilelma)); 
 
     sorular.add(new Soru("Hangi Elma Kırmızıdır?", R.raw.kirmizi, R.drawable.kirmizielma, R.drawable.yesilelma, R.drawable.yesilelma, R.drawable.kirmizielma)); 
 
     sorular.add(new Soru("Hangi Elma Yeşildir?", R.raw.yesil, R.drawable.kirmizielma, R.drawable.yesilelma, R.drawable.kirmizielma, R.drawable.yesilelma)); 
 
     sorular.add(new Soru("Hangi Elma Kırmızıdır?", R.raw.kirmizi, R.drawable.yesilelma, R.drawable.yesilelma, R.drawable.kirmizielma, R.drawable.kirmizielma)); 
 
     sorular.add(new Soru("Hangi Elma Yeşildir?", R.raw.yesil, R.drawable.kirmizielma, R.drawable.kirmizielma, R.drawable.yesilelma, R.drawable.yesilelma)); 
 

 
     sayac = random.nextInt(kalanSoruSayisi); 
 

 
     soru.setText(sorular.get(sayac).getSoru()); 
 
     secenek1.setImageResource(sorular.get(sayac).getSecenek1()); 
 
     secenek2.setImageResource(sorular.get(sayac).getSecenek2()); 
 
     secenek3.setImageResource(sorular.get(sayac).getSecenek3()); 
 
     dogruCevap = sorular.get(sayac).getDogruCevap(); 
 
     sound = soundPool.load(this, sorular.get(sayac).getSoruSesi(), 1); 
 
     soundPool.play(sound, 1, 1, 0, 0, 1); 
 
    } 
 

 
    @Override 
 
    public void onClick(View view) { 
 
     soundPool.stop(sound); 
 
     switch (view.getId()) { 
 
      case R.id.secenek1: 
 
       soundPool.stop(sound); 
 
       if (dogruCevap == sorular.get(sayac).getSecenek1()) { 
 
        dogruSayisi++; 
 
        dogrusayi.setText(String.valueOf(dogruSayisi)); 
 
       } else { 
 
        yanlisSayisi++; 
 
        yanlissayi.setText(String.valueOf(yanlisSayisi)); 
 
       } 
 
       siradakiSoru(); 
 
       break; 
 
      case R.id.secenek2: 
 
       soundPool.stop(sound); 
 
       if (kalanSoruSayisi == 0) { 
 
        soundPoolDogru.stop(dogruSound); 
 
        soundPoolYanlis.stop(yanlisSound); 
 
        startActivity(new Intent(this, MainActivity.class)); 
 
        finish(); 
 
       } else { 
 
        if (dogruCevap == sorular.get(sayac).getSecenek2()) { 
 
         dogruSayisi++; 
 
         dogrusayi.setText(String.valueOf(dogruSayisi)); 
 
        } else { 
 
         yanlisSayisi++; 
 
         yanlissayi.setText(String.valueOf(yanlisSayisi)); 
 
        } 
 
        siradakiSoru(); 
 
       } 
 
       break; 
 
      case R.id.secenek3: 
 
       soundPool.stop(sound); 
 
       if (dogruCevap == sorular.get(sayac).getSecenek3()) { 
 
        dogruSayisi++; 
 
        dogrusayi.setText(String.valueOf(dogruSayisi)); 
 
       } else { 
 
        yanlisSayisi++; 
 
        yanlissayi.setText(String.valueOf(yanlisSayisi)); 
 
       } 
 
       siradakiSoru(); 
 
       break; 
 
     } 
 
    } 
 

 
    public void siradakiSoru() { 
 
     soundPool.stop(sound); 
 
     sorular.remove(sayac); 
 
     kalanSoruSayisi--; 
 
     if (kalanSoruSayisi == 0) { 
 
      soru.setText(String.valueOf(dogruSayisi)+" Doğru "+String.valueOf(yanlisSayisi)+" Yanlışın Var!!!"); 
 
      sonuc.setText("Test Bitti!!!"); 
 
      if (dogruSayisi >= 4) { 
 
       soundPoolDogru.play(dogruSound, 1, 1, 0, 0, 1); 
 
       secenek1.setClickable(false); 
 
       //secenek2.setClickable(false); 
 
       secenek3.setClickable(false); 
 
       secenek1.setImageResource(R.drawable.bos); 
 
       secenek2.setImageResource(R.drawable.alkis); 
 
       secenek3.setImageResource(R.drawable.bos); 
 
      }else{ 
 
       soundPoolYanlis.play(yanlisSound, 1, 1, 0, 0, 1); 
 
       secenek1.setClickable(false); 
 
       //secenek2.setClickable(false); 
 
       secenek3.setClickable(false); 
 
       secenek1.setImageResource(R.drawable.bos); 
 
       secenek2.setImageResource(R.drawable.geri); 
 
       secenek3.setImageResource(R.drawable.bos); 
 
      } 
 
     } else { 
 
      sayac = random.nextInt(kalanSoruSayisi); 
 
      soru.setText(sorular.get(sayac).getSoru()); 
 
      secenek1.setImageResource(sorular.get(sayac).getSecenek1()); 
 
      secenek2.setImageResource(sorular.get(sayac).getSecenek2()); 
 
      secenek3.setImageResource(sorular.get(sayac).getSecenek3()); 
 
      dogruCevap = sorular.get(sayac).getDogruCevap(); 
 
      sound = soundPool.load(this, sorular.get(sayac).getSoruSesi(), 1); 
 
      soundPool.play(sound, 1, 1, 0, 0, 1); 
 
     } 
 
    } 
 
}

そして、我々のxmlファイルには、このようなものです:

<?xml version="1.0" encoding="utf-8"?> 
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
 
    xmlns:tools="http://schemas.android.com/tools" 
 
    android:id="@+id/activity_main" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:background="#FFFFFF" 
 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
 
    android:paddingRight="@dimen/activity_horizontal_margin" 
 
    android:paddingTop="@dimen/activity_vertical_margin" 
 
    tools:context="tr.com.blogspot.etkinlikhavuzu.benimilkogretmenim.MainActivity"> 
 

 
    <RelativeLayout 
 
     android:layout_width="match_parent" 
 
     android:layout_height="match_parent" 
 
     android:paddingBottom="30dp"> 
 

 
     <Button 
 
      android:id="@+id/dogru" 
 
      android:layout_width="50dp" 
 
      android:layout_height="50dp" 
 
      android:layout_alignParentLeft="true" 
 
      android:layout_alignParentStart="true" 
 
      android:layout_alignParentTop="true" 
 
      android:background="@drawable/dogru" /> 
 

 
     <Button 
 
      android:id="@+id/yanlis" 
 
      android:layout_width="50dp" 
 
      android:layout_height="50dp" 
 
      android:layout_alignParentLeft="true" 
 
      android:layout_alignParentStart="true" 
 
      android:layout_below="@+id/dogru" 
 
      android:layout_marginTop="10dp" 
 
      android:background="@drawable/yanlis" /> 
 

 
     <TextView 
 
      android:id="@+id/dogrusayi" 
 
      android:layout_width="100dp" 
 
      android:layout_height="50dp" 
 
      android:layout_above="@+id/yanlis" 
 
      android:layout_toEndOf="@+id/dogru" 
 
      android:layout_toRightOf="@+id/dogru" 
 
      android:gravity="center" 
 
      android:text="0" 
 
      android:textColor="#006600" 
 
      android:textSize="30sp" /> 
 

 
     <TextView 
 
      android:id="@+id/yanlissayi" 
 
      android:layout_width="100dp" 
 
      android:layout_height="50dp" 
 
      android:layout_alignBottom="@+id/yanlis" 
 
      android:layout_toEndOf="@+id/yanlis" 
 
      android:layout_toRightOf="@+id/yanlis" 
 
      android:gravity="center" 
 
      android:text="0" 
 
      android:textColor="#990000" 
 
      android:textSize="30sp" /> 
 
     <ImageView 
 
      android:id="@+id/secenek1" 
 
      android:layout_width="170dp" 
 
      android:layout_height="170dp" 
 
      android:layout_alignParentBottom="true" 
 
      android:layout_alignParentLeft="true" 
 
      android:layout_alignParentStart="true" /> 
 
     <ImageView 
 
      android:id="@+id/secenek2" 
 
      android:layout_width="170dp" 
 
      android:layout_height="170dp" 
 
      android:layout_alignBottom="@+id/secenek1" 
 
      android:layout_centerHorizontal="true" /> 
 
     <ImageView 
 
      android:id="@+id/secenek3" 
 
      android:layout_width="170dp" 
 
      android:layout_height="170dp" 
 
      android:layout_alignBottom="@+id/secenek2" 
 
      android:layout_alignParentEnd="true" 
 
      android:layout_alignParentRight="true" /> 
 

 
     <TextView 
 
      android:id="@+id/soru" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:layout_above="@+id/secenek2" 
 
      android:layout_marginBottom="18dp" 
 
      android:layout_toEndOf="@+id/dogrusayi" 
 
      android:layout_toRightOf="@+id/dogrusayi" 
 
      android:gravity="center" 
 
      android:text="" 
 
      android:textColor="#000000" 
 
      android:textSize="40sp" 
 
      android:textStyle="bold|italic" /> 
 

 
     <TextView 
 
      android:text="" 
 
      android:textColor="#000000" 
 
      android:textSize="40sp" 
 
      android:textStyle="bold|italic" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:id="@+id/sonuc" 
 
      android:layout_above="@+id/soru" 
 
      android:layout_toRightOf="@+id/yanlissayi" 
 
      android:layout_toEndOf="@+id/yanlissayi" /> 
 

 
    </RelativeLayout> 
 
</RelativeLayout>

あなたの助けのためにありがとうございました。 ..

答えて

0

新しいサウンドの前のバージョンを再生した後:

pool.release(); 
+0

残念ながら、まだ再生されないサウンドが残っています。同じ質問で同じ音...時には時々演奏しない... –

関連する問題