| | |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.fragment.BaseFragment |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.visible |
| | | import com.dollearn.student.R |
| | | import com.dollearn.student.utils.AudioUtils |
| | | import com.dollearn.student.utils.Const |
| | | import com.dollearn.student.utils.extention.clickDelay |
| | | import kotlinx.android.synthetic.main.fragment_choose_voice.* |
| | | import org.jetbrains.anko.backgroundResource |
| | |
| | | |
| | | private val PLAY_VOICE = 1 |
| | | private val TO_NEXT = 10 |
| | | |
| | | private val PLAY_ERROR = 3 |
| | | private val PLAY_RIGHT = 4 |
| | | |
| | | private val errorVoice by lazy { SPUtils.instance().getString(Const.EV) } |
| | | private val rightVoice by lazy { SPUtils.instance().getString(Const.RV) } |
| | | |
| | | private var rightPlaying = false |
| | | private var errorPlaying = false |
| | | |
| | | private var voiceList = arrayListOf<String>() //本题音频,每题有3个音频 |
| | | private val player by lazy { AudioUtils() } |
| | |
| | | |
| | | private val act by lazy { (requireActivity() as ChooseVoiceActivity) } |
| | | |
| | | private var nowVoiceView:View? = null |
| | | |
| | | override fun onFirstVisibleToUser() { |
| | | player.setOnAudioStatusUpdateListener(this) |
| | | player.stopPlayMusic() |
| | |
| | | TO_NEXT->{ |
| | | if (isAdded&&!playing) |
| | | (requireActivity() as ChooseVoiceActivity).next() |
| | | } |
| | | PLAY_RIGHT->{ |
| | | rightPlaying = true |
| | | player.startPlayMusic(requireContext(),rightVoice) |
| | | } |
| | | PLAY_ERROR->{ |
| | | errorPlaying = true |
| | | player.startPlayMusic(requireContext(),errorVoice) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | rl_check_1.clickDelay { |
| | | if (playing) |
| | | if (playing||data!!.subjectList[group].filter { it.completed }.size == data!!.subjectList[group].size) |
| | | return@clickDelay |
| | | dot_1.visible() |
| | | act.totalCount++ |
| | | if (voiceList[0] == data!!.subjectList[group][currentIndex].correct){ |
| | | act.rightCount++ |
| | | data!!.subjectList[group][currentIndex].completed = true |
| | | motion.transitionToEnd() |
| | | cl_voice1.callOnClick() |
| | | }else{ |
| | | iv_error_1.visible() |
| | | dot_1.postDelayed({ |
| | | iv_error_1.gone() |
| | | dot_1.gone() |
| | | },2000) |
| | | } |
| | | if (rl_check_2.visibility == View.VISIBLE&&rl_check_3.visibility == View.VISIBLE){ |
| | | dot_1.visible() |
| | | act.totalCount++ |
| | | if (voiceList[0] == data!!.subjectList[group][currentIndex].correct){ |
| | | act.rightCount++ |
| | | motion.transitionToEnd() |
| | | nowVoiceView = cl_voice1 |
| | | handler?.sendEmptyMessage(PLAY_RIGHT) |
| | | }else{ |
| | | handler?.sendEmptyMessage(PLAY_ERROR) |
| | | iv_error_1.visible() |
| | | dot_1.postDelayed({ |
| | | iv_error_1.gone() |
| | | dot_1.gone() |
| | | rl_check_1.gone() |
| | | rl_check_2.gone() |
| | | rl_check_3.gone() |
| | | },2000) |
| | | } |
| | | }else |
| | | myToast("请听完题") |
| | | } |
| | | |
| | | rl_check_2.clickDelay { |
| | | if (playing) |
| | | if (playing||data!!.subjectList[group].filter { it.completed }.size == data!!.subjectList[group].size) |
| | | return@clickDelay |
| | | dot_2.visible() |
| | | act.totalCount++ |
| | | if (voiceList[1] == data!!.subjectList[group][currentIndex].correct){ |
| | | act.rightCount++ |
| | | data!!.subjectList[group][currentIndex].completed = true |
| | | motion.transitionToEnd() |
| | | cl_voice2.callOnClick() |
| | | }else{ |
| | | iv_error_2.visible() |
| | | dot_1.postDelayed({ |
| | | dot_2.gone() |
| | | iv_error_2.gone() |
| | | },2000) |
| | | } |
| | | if (rl_check_1.visibility == View.VISIBLE&&rl_check_3.visibility == View.VISIBLE) { |
| | | dot_2.visible() |
| | | act.totalCount++ |
| | | if (voiceList[1] == data!!.subjectList[group][currentIndex].correct){ |
| | | act.rightCount++ |
| | | motion.transitionToEnd() |
| | | nowVoiceView = cl_voice2 |
| | | handler?.sendEmptyMessage(PLAY_RIGHT) |
| | | }else{ |
| | | |
| | | handler?.sendEmptyMessage(PLAY_ERROR) |
| | | iv_error_2.visible() |
| | | dot_1.postDelayed({ |
| | | dot_2.gone() |
| | | iv_error_2.gone() |
| | | rl_check_1.gone() |
| | | rl_check_2.gone() |
| | | rl_check_3.gone() |
| | | },2000) |
| | | } |
| | | }else |
| | | myToast("请听完题") |
| | | |
| | | } |
| | | rl_check_3.clickDelay { |
| | | if (playing) |
| | | if (playing||data!!.subjectList[group].filter { it.completed }.size == data!!.subjectList[group].size) |
| | | return@clickDelay |
| | | dot_3.visible() |
| | | act.totalCount++ |
| | | if (voiceList[2] == data!!.subjectList[group][currentIndex].correct){ |
| | | data!!.subjectList[group][currentIndex].completed = true |
| | | act.rightCount++ |
| | | motion.transitionToEnd() |
| | | cl_voice3.callOnClick() |
| | | }else{ |
| | | iv_error_3.visible() |
| | | dot_1.postDelayed({ |
| | | iv_error_3.gone() |
| | | dot_3.gone() |
| | | },2000) |
| | | } |
| | | if (rl_check_2.visibility == View.VISIBLE&&rl_check_3.visibility == View.VISIBLE) { |
| | | dot_3.visible() |
| | | act.totalCount++ |
| | | if (voiceList[2] == data!!.subjectList[group][currentIndex].correct){ |
| | | act.rightCount++ |
| | | nowVoiceView = cl_voice3 |
| | | handler?.sendEmptyMessage(PLAY_RIGHT) |
| | | motion.transitionToEnd() |
| | | }else{ |
| | | handler?.sendEmptyMessage(PLAY_ERROR) |
| | | iv_error_3.visible() |
| | | dot_1.postDelayed({ |
| | | iv_error_3.gone() |
| | | dot_3.gone() |
| | | rl_check_1.gone() |
| | | rl_check_2.gone() |
| | | rl_check_3.gone() |
| | | },2000) |
| | | } |
| | | }else |
| | | myToast("请听完题") |
| | | |
| | | } |
| | | |
| | | cl_voice_end_1.clickDelay { |
| | |
| | | |
| | | override fun onStartPlay() { |
| | | playing = true |
| | | if (voiceIndex == 0){ |
| | | iv1_1.gone() |
| | | iv2_1.gone() |
| | | iv_playing_1.visible() |
| | | } |
| | | if (voiceIndex == 1){ |
| | | iv1_2.gone() |
| | | iv2_2.gone() |
| | | iv_playing_2.visible() |
| | | } |
| | | if (voiceIndex == 2){ |
| | | iv1_3.gone() |
| | | iv2_3.gone() |
| | | iv_playing_3.visible() |
| | | } |
| | | if (voiceIndex == 3){ |
| | | iv1_1_end.gone() |
| | | iv2_1_end.gone() |
| | | iv_playing_1_end.visible() |
| | | } |
| | | if (voiceIndex == 4){ |
| | | iv1_2_end.gone() |
| | | iv2_2_end.gone() |
| | | iv_playing_2_end.visible() |
| | | } |
| | | if (voiceIndex == 5){ |
| | | iv1_3_end.gone() |
| | | iv2_3_end.gone() |
| | | iv_playing_3_end.visible() |
| | | } |
| | | if (voiceIndex == 6){ |
| | | iv1_4_end.gone() |
| | | iv2_4_end.gone() |
| | | iv_playing_4_end.visible() |
| | | if (!errorPlaying&&!rightPlaying){ |
| | | if (voiceIndex == 0){ |
| | | iv1_1.gone() |
| | | iv2_1.gone() |
| | | iv_playing_1.visible() |
| | | } |
| | | if (voiceIndex == 1){ |
| | | iv1_2.gone() |
| | | iv2_2.gone() |
| | | iv_playing_2.visible() |
| | | } |
| | | if (voiceIndex == 2){ |
| | | iv1_3.gone() |
| | | iv2_3.gone() |
| | | iv_playing_3.visible() |
| | | } |
| | | if (voiceIndex == 3){ |
| | | iv1_1_end.gone() |
| | | iv2_1_end.gone() |
| | | iv_playing_1_end.visible() |
| | | } |
| | | if (voiceIndex == 4){ |
| | | iv1_2_end.gone() |
| | | iv2_2_end.gone() |
| | | iv_playing_2_end.visible() |
| | | } |
| | | if (voiceIndex == 5){ |
| | | iv1_3_end.gone() |
| | | iv2_3_end.gone() |
| | | iv_playing_3_end.visible() |
| | | } |
| | | if (voiceIndex == 6){ |
| | | iv1_4_end.gone() |
| | | iv2_4_end.gone() |
| | | iv_playing_4_end.visible() |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | showSubImage() |
| | | } |
| | | } |
| | | |
| | | if (rightPlaying){ |
| | | rightPlaying = false |
| | | data!!.subjectList[group][currentIndex].completed = true |
| | | nowVoiceView?.callOnClick() |
| | | } |
| | | if (errorPlaying) |
| | | errorPlaying = false |
| | | } |
| | | |
| | | override fun onPause() { |
| | | super.onPause() |
| | | player.stopPlayMusic() |
| | | } |
| | | |
| | | override fun onDestroy() { |
| | | super.onDestroy() |
| | | handler?.removeCallbacksAndMessages(null) |
| | | } |
| | | } |