package com.dollearn.student.ui.home
|
|
import android.os.Handler
|
import android.os.Looper
|
import android.os.Message
|
import android.util.Log
|
import androidx.core.os.bundleOf
|
import cn.sinata.xldutils.fragment.BaseFragment
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.visible
|
import com.dollearn.student.R
|
import com.dollearn.student.utils.AudioUtils
|
import com.dollearn.student.utils.extention.clickDelay
|
import kotlinx.android.synthetic.main.fragmetn_remember.*
|
|
class RememberFragment:BaseFragment(), AudioUtils.OnAudioStatusUpdateListener {
|
override fun contentViewId() = R.layout.fragmetn_remember
|
|
var handler:Handler? = null
|
|
private val index by lazy { arguments?.getInt("index")?:0 }
|
private val data by lazy {
|
(requireActivity() as ListenStoryActivity).data
|
}
|
|
private val PLAY_VOICE = 1
|
val player by lazy { AudioUtils() }
|
|
var playing = false //播放中,不能有任何操作
|
|
override fun onFirstVisibleToUser() {
|
player.setOnAudioStatusUpdateListener(this)
|
player.stopPlayMusic()
|
handler = object : Handler(Looper.getMainLooper()){
|
override fun handleMessage(msg: Message) {
|
super.handleMessage(msg)
|
when(msg.what){
|
PLAY_VOICE->{
|
if (!playing&&isAdded)
|
player.startPlayMusic(requireContext(),data!!.storyList[index].correct)
|
}
|
}
|
}
|
}
|
data?.storyList?.get(index)?.apply {
|
iv_1.setImageURI(img)
|
}
|
recover()
|
setOnClick()
|
}
|
|
private fun setOnClick() {
|
cl_voice.clickDelay {
|
if (playing)
|
return@clickDelay
|
handler?.sendEmptyMessage(PLAY_VOICE)
|
}
|
}
|
|
/**
|
* 重置
|
*/
|
fun recover() {
|
handler?.sendEmptyMessageDelayed(PLAY_VOICE,2000)
|
}
|
|
/**
|
* 翻页调用
|
*/
|
fun stopVoice(){
|
handler?.removeMessages(PLAY_VOICE)
|
player.stopPlayMusic()
|
}
|
|
companion object{
|
/**
|
* @param index 题组号
|
*/
|
fun getInstance(index:Int):RememberFragment{
|
val listenFragment = RememberFragment()
|
listenFragment.arguments = bundleOf("index" to index)
|
return listenFragment
|
}
|
}
|
|
override fun onUpdate(db: Double, time: Long) {
|
}
|
|
override fun onStop(filePath: String?) {
|
}
|
|
override fun onStartPlay() {
|
playing = true
|
iv1.gone()
|
iv2.gone()
|
iv_playing.visible()
|
}
|
|
override fun onFinishPlay() {
|
playing = false
|
iv1.visible()
|
iv2.visible()
|
iv_playing.gone()
|
}
|
|
}
|