前提・実現したいこと
自分の弟用に算数の足し算アプリを作っています。
問題をランダムに作って表示ごとにrawの音ファイルを再生して問題を読み上げたい
例)1+1=を表示して 「いち」 「たす」 「いち」 「は」
2+2=を表示して 「に」 「たす」 「に」 「は」
回答の読み上げはクリックごとに読み上げできているのですが問題の読み上げで4つの音を出すところではまっています。
makeExam()でmakeSound()を呼ぶと一つの音は出るのですが複数はだめでした。
うまくできる方法なないでしょうか。
kotlin
1 //問題を作る 2 fun makeExam() { 3 4 answer.text = "" 5 val numbers = listOf<Int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 6 val random = Random() 7 //一番目の数字を表示 8 var firstRandomNumber = random.nextInt(9) 9 firstValue.text = numbers[numberRandom].toString() 10 //二番目の数字を表示 11 secondRandomNumber = random.nextInt(9) 12 secondValue.text = numbers[numberRandom].toString() 13 14 //作った式を読み上げたい 15 makeSound(firstRandomNumber.toString()) 16 makeSound("+") 17 makeSound(secondRandomNumber.toString()) 18 makeSound("=") 19 20 } 21 22 //mp3を再生する 23 fun makeSound(selectedNumber:String) { 24 var soundListBtn = listOf(intSoundId_btn0 25 ,intSoundId_btn1,intSoundId_btn2,intSoundId_btn3,intSoundId_btn4, 26 intSoundId_btn5,intSoundId_btn6,intSoundId_btn7,intSoundId_btn8,intSoundId_btn9) 27 28 if(selectedNumber != "C" && selectedNumber != "-" && selectedNumber != "+"){ 29 soundPool.play( soundListBtn[ selectedNumber.toInt() ], 1.0f, 1.0f, 0, 0, 1.0f) 30 31 }else if (txt == "-"){ 32 soundPool.play( intSoundId_btnMinus, 1.0f, 1.0f, 0, 0, 1.0f) 33 34 }else if(txt == "+"){ 35 soundPool.play(intSoundId_btnPlus, 1.0f, 1.0f, 0, 0, 1.0f) 36 37 }else if(txt=="="){ 38 soundPool.play(intSoundId_btnEquals, 1.0f, 1.0f, 0, 0, 1.0f) 39 40 } 41 } 42
一応、メソッドからではなく問題を作った後にViewの値から読み上げようとも思ったのですが。それも音が一つしか再生されません。
soundPool.play( intSoundId_btn1, 1.0f, 1.0f, 0, 0, 1.0f) soundPool.play( intSoundId_btnPlus, 1.0f, 1.0f, 0, 0, 1.0f) soundPool.play( intSoundId_btn3, 1.0f, 1.0f, 0, 0, 1.0f) soundPool.play( intSoundId_btnEquals, 1.0f, 1.0f, 0, 0, 1.0f)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/04 04:13