السلام عليكم انا لدي مشكلة لم أجد لها حلا الى هذه اللحظه. انا لدي تطبيق قرأني يعمل بنسخة pdf وملفات صوتيه داخل BottomSheet وكل شيء يعمل بشكل جيد لكن عندما أغلق الbottomsheet الصوت يضل يعمل لكن القيمة الseekbar لا تعمل وتصل قيمتة الى النهايه وحتى الtextviews ترجع الى 0:00 كيف أحل هذه المشكلة بحيث عندما اغلف الbottomsheet يضل السيكبار والتيكست يعملان على الصوت؟
هذا الكود
private var mediaPlayer:MediaPlayer?= null
private var oTime =0private var sTime:Int=0private var eTime:Int=0
fun quranMp3(){
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
eTime = mediaPlayer!!.duration.toLong().toInt()
sTime = mediaPlayer!!.currentPosition.toLong().toInt()if(oTime ==0){
quranSeekBar!!.setMax(eTime)
oTime =1}
playerDuration?.text =String.format("%d min, %d sec",TimeUnit.MILLISECONDS.toMinutes(eTime.toLong()),TimeUnit.MILLISECONDS.toSeconds(eTime.toLong())-TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(eTime.toLong())))
playerPosition?.text =String.format("%d min, %d sec",TimeUnit.MILLISECONDS.toMinutes(sTime.toLong()),TimeUnit.MILLISECONDS.toSeconds(sTime.toLong())-TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(sTime.toLong())))
initializeSeekBar()}
mediaPlayer?.start()Log.d("QuranMp3","Duration: ${mediaPlayer!!.duration/1000} seconds")}
quranPause?.setOnClickListener {if(mediaPlayer !== null){
mediaPlayer?.pause()Log.d("QuranMp3","Paused at: ${mediaPlayer!!.duration/1000} seconds")}
mp3SeekBar.setOnSeekBarChangeListener( object :SeekBar.OnSeekBarChangeListener{
override fun onProgressChanged(seekBar:SeekBar?, progress:Int, fromUser:Boolean){if(fromUser){
mediaPlayer?.seekTo(progress)}}
override fun onStartTrackingTouch(seekBar:SeekBar?){
val Toast=Toast.makeText(context,"تتبع..",Toast.LENGTH_LONG)Toast.setGravity(Gravity.CENTER_VERTICAL,50,50)Toast.show()}
override fun onStopTrackingTouch(seekBar:SeekBar){
val Toast=Toast.makeText(context,"يرجى الانتظار للحصول على البيانات..",Toast.LENGTH_LONG)Toast.setGravity(Gravity.CENTER_VERTICAL,50,50)Toast.show()}})private fun initializeSeekBar(){
val mp3SeekBar = view?.findViewById<SeekBar>(R.id.mp3SeekBar)
mp3SeekBar?.max = mediaPlayer!!.duration
val playerPosition = view?.findViewById<TextView>(R.id.player_position)
val playerDuration = view?.findViewById<TextView>(R.id.player_duraation)
val seekbar =this.activity?.getSharedPreferences("QuranPdf",Context.MODE_PRIVATE)
val handler =Handler()
handler.postDelayed(object :Runnable{
override fun run(){try{
sTime = mediaPlayer!!.currentPosition
playerDuration!!.text =String.format("%d min, %d sec",TimeUnit.MILLISECONDS.toMinutes(eTime.toLong()),TimeUnit.MILLISECONDS.toSeconds(eTime.toLong())-TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(eTime.toLong())))
playerPosition?.text =String.format("%d min, %d sec",TimeUnit.MILLISECONDS.toMinutes(sTime.toLong()),TimeUnit.MILLISECONDS.toSeconds(sTime.toLong())-TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(sTime.toLong())))
mp3SeekBar?.progress = sTime //mediaPlayer!!.currentPosition
handler.postDelayed(this,1000)}catch(e:Exception){
mp3SeekBar?.progress =0}}},0)}
هذه صور مشكلتي كما ترون عندما افتح الbottomsheet كل شيء يعمل بشكل جيد لكن عندا اجعل الصوت يعمل وأغلق الbottomsheet لأقراء وأفتحة مجددا عندما أنهي القراءة السيكبار يصل الى النهايه والتيكست ترجع الى 0:00
أي شخص قادر أن يحل مشكلتي بالجافا أكتب جوابك بالجافا انا استطيع ترجمته الى برنامجي
السؤال
عبدالرحمن العنزي4
السلام عليكم انا لدي مشكلة لم أجد لها حلا الى هذه اللحظه. انا لدي تطبيق قرأني يعمل بنسخة pdf وملفات صوتيه داخل BottomSheet وكل شيء يعمل بشكل جيد لكن عندما أغلق الbottomsheet الصوت يضل يعمل لكن القيمة الseekbar لا تعمل وتصل قيمتة الى النهايه وحتى الtextviews ترجع الى 0:00 كيف أحل هذه المشكلة بحيث عندما اغلف الbottomsheet يضل السيكبار والتيكست يعملان على الصوت؟
هذا الكود
هذه صور مشكلتي كما ترون عندما افتح الbottomsheet كل شيء يعمل بشكل جيد لكن عندا اجعل الصوت يعمل وأغلق الbottomsheet لأقراء وأفتحة مجددا عندما أنهي القراءة السيكبار يصل الى النهايه والتيكست ترجع الى 0:00
أي شخص قادر أن يحل مشكلتي بالجافا أكتب جوابك بالجافا انا استطيع ترجمته الى برنامجي
شكرا لكم واتمنى ان يتم حل مشكلتي
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.