lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt
@@ -3,6 +3,7 @@
import android.widget.SeekBar
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import com.sinata.xqmuse.MainActivity
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.BGMBean
@@ -10,7 +11,10 @@
import com.sinata.xqmuse.ui.home.adapter.BgmBannerAdapter
import com.sinata.xqmuse.utils.AudioUtils
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_bgm.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
class BGMSettingActivity :TransparentStatusBarActivity(), AudioUtils.OnAudioStatusUpdateListener {
@@ -18,17 +22,22 @@
    private val list = arrayListOf<BGMBean>()
    private val cardBannerAdapter by lazy { BgmBannerAdapter(list,this) }
    private val fromPrivacy by lazy { intent.getBooleanExtra("fromPrivacy",false) } //从私人定制过来,设置完成需要发送停止引导的事件
    private val player by lazy { AudioUtils() }
    private var isSilent = false //true:bgm静音
    override fun initClick() {
        iv_back.setOnClickListener { finish() }
        iv_silent.setOnClickListener {
            sb_voice.progress = 0
        }
        banner_landscape.setOnBannerListener { data, position ->
        banner_landscape.setOnBannerListener { _, position ->
            cardBannerAdapter.playPosition = position
            cardBannerAdapter.notifyItemChanged(position)
            cardBannerAdapter.notifyDataSetChanged()
            player.startPlayMusic(this,list[position].audioFile)
            if (banner_landscape.currentItem != position){
                banner_landscape.setCurrentItem(position,true)
            }
        }
        sb_voice.setOnSeekBarChangeListener(object :SeekBar.OnSeekBarChangeListener{
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
@@ -42,10 +51,29 @@
            }
        })
        sb_silent.setOnClickListener {
            isSilent = !isSilent
            sb_silent.setImageResource(if (!isSilent) R.mipmap.sw_on else R.mipmap.sw_off)
        }
        tv_action.setOnClickListener {
            SPUtils.instance().put(Const.User.VOLUME,sb_voice.progress).put(Const.User.BGM,list[banner_landscape.currentItem].audioFile).apply()
            toast("保存成功")
            player.startPlayMusic(this,list[banner_landscape.currentItem].audioFile)
            if (list.isNotEmpty()){ //存bgm和bg
                tv_action.isEnabled = false
                HttpManager.saveUserHomeBackgroundMusic(list[banner_landscape.currentItem].id).request(this,success = {_,_->
                    //存音量
//                    SPUtils.instance().put(Const.User.VOLUME,sb_voice.progress).apply()
                    SPUtils.instance().put(Const.User.VOLUME,if (isSilent) 0 else 50).apply()
                    SPUtils.instance().put(Const.User.BG,list[banner_landscape.currentItem].imageUrl)
                        .put(Const.User.BGM,list[banner_landscape.currentItem].audioFile).apply()
                    EventBus.getDefault().post(EmptyEvent(Const.EventCode.CHANGE_BGM))
                    toast("保存成功")
                    startActivity<MainActivity>()
                }){_,_->
                    tv_action.isEnabled = true
                }
            }
            if (fromPrivacy)
                EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_GUIDE_AUDIO))
        }
    }
@@ -55,6 +83,9 @@
        banner_landscape.setBannerGalleryEffect(110,12,0.85f)
        player.setOnAudioStatusUpdateListener(this)
        sb_voice.progress = SPUtils.instance().getInt(Const.User.VOLUME,50)
        isSilent = SPUtils.instance().getInt(Const.User.VOLUME,50) == 0
        sb_silent.setImageResource(if (!isSilent) R.mipmap.sw_on else R.mipmap.sw_off)
//        player.setVolume(sb_voice.progress.toFloat()/100)
        getData()
    }
@@ -66,6 +97,8 @@
            val indexOf = list.map { it.audioFile }.indexOf(bgm)
            if (indexOf>=0){
                banner_landscape.currentItem = indexOf
            }else if (list.size>2){
                banner_landscape.currentItem = 1
            }
            cardBannerAdapter.notifyDataSetChanged()
        }
@@ -86,4 +119,12 @@
        cardBannerAdapter.playPosition = -1
        cardBannerAdapter.notifyItemChanged(p)
    }
    override fun onGetDuration(duration: Int) {
    }
    override fun onPause() {
        super.onPause()
        player.stopPlayMusic(true)
    }
}