问题描述
我正在尝试将我的媒体播放器 {from seekbar} 定位和持续时间添加到文本视图,但我的代码似乎都不起作用。任何人都可以请帮助并告诉我我做错了什么吗?
这是我的代码,最后一个函数是我应该将位置和持续时间更改为时间
我的片段
class quranpdfListenBottomsheetFragment: BottomSheetDialogFragment(){
private var mediaPlayer:MediaPlayer? = null
// seekbar shared
val seekbar = this.activity?.getSharedPreferences("QuranPdf",Context.MODE_PRIVATE)
val playerPosition = view?.findViewById<TextView>(R.id.player_position)
val playerDuration = view?.findViewById<TextView>(R.id.player_duraation)
private var totalTime: Int = 0
// here is where you can work with the buttons and texts
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
super.onViewCreated(view,savedInstanceState)
quranMp3()
}
fun quranMp3(){
val num = this.activity?.getSharedPreferences("QuranPdf",Context.MODE_PRIVATE)
val quranPageNum = num?.getInt("pageNum",0)
val ayaTitle = view?.findViewById<TextView>(R.id.ayaName)
val quranPlay = view?.findViewById<FloatingActionButton>(R.id.quranPlay)
val quranPause = view?.findViewById<FloatingActionButton>(R.id.quranPause)
val quranStop = view?.findViewById<FloatingActionButton>(R.id.quranStop)
val quranSeekBar = view?.findViewById<SeekBar>(R.id.mp3SeekBar)
// quran aya sounds according to swiping through sharedpref( quranPageNum)
quranPlay?.setonClickListener {
if (quranPageNum?.equals(0)!!){
if (mediaPlayer == null){
mediaPlayer = MediaPlayer.create(context,Uri.parse("https://server7.mp3quran.net/basit/Almusshaf-Al-Mojawwad/001.mp3"))
Log.d("quranMp3","ID: ${mediaPlayer!!.audioSessionId}")
val position = mediaPlayer!!.currentPosition/100
mp3SeekBar.progress = position
totalTime = mediaPlayer!!.duration
initializeSeekBar()
}
mediaPlayer?.start()
Log.d("QuranMp3","Duration: ${mediaPlayer!!.duration/1000} seconds")
}
else if (quranPageNum in 1..44){
if (mediaPlayer == null){
mediaPlayer = MediaPlayer.create(context,Uri.parse("https://server7.mp3quran.net/basit/Almusshaf-Al-Mojawwad/002.mp3"))
Log.d("quranMp3","ID: ${mediaPlayer!!.audioSessionId}")
val position = mediaPlayer!!.currentPosition/100
mp3SeekBar.progress = position
initializeSeekBar()
// seekbar?.getInt("seekValue",position)
}
mediaPlayer?.start()
Log.d("QuranMp3","Duration: ${mediaPlayer!!.duration/1000} seconds")
}
}
}
//quran mp3 seekbar
mp3SeekBar.setonSeekBarchangelistener( object : SeekBar.OnSeekBarchangelistener{
override fun onProgressChanged(seekBar: SeekBar?,progress: Int,fromUser: Boolean) {
if (fromUser){
mediaPlayer?.seekTo(progress)
}
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
}
})
}
private fun initializeSeekBar() {
totalTime = mediaPlayer!!.duration
var current = mediaPlayer!!.currentPosition
val mp3SeekBar = view?.findViewById<SeekBar>(R.id.mp3SeekBar)
mp3SeekBar?.max = totalTime
val handler = Handler()
handler.postDelayed(object : Runnable {
override fun run() {
try {
mp3SeekBar?.progress = mediaPlayer!!.currentPosition
handler.postDelayed(this,1000)
// here is my time function
var elapsedtime = createTimeLabel(current)
playerPosition?.text = elapsedtime
var remaining = createTimeLabel(totalTime - mediaPlayer!!.currentPosition)
playerDuration?.text = "-$remaining"
} catch (e: Exception) {
mp3SeekBar?.progress = 0
}
}
},0)
}
fun createTimeLabel(time: Int): String{
var timeLabel = ""
var min = time / 1000 / 60
var sec = time / 1000 % 60
timeLabel = "$min:"
if (sec<10) {
timeLabel += "0"
}
timeLabel += sec
return timeLabel
}
提前致谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)