lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.sinata.xqmuse.ui
 
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
import com.sinata.xqmuse.network.request
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 {
    override fun setContentView() = R.layout.activity_bgm
 
    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 { _, position ->
            cardBannerAdapter.playPosition = 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) {
                player.setVolume(progress.toFloat()/100)
            }
 
            override fun onStartTrackingTouch(seekBar: SeekBar?) {
            }
 
            override fun onStopTrackingTouch(seekBar: SeekBar?) {
            }
        })
 
        sb_silent.setOnClickListener {
            isSilent = !isSilent
            sb_silent.setImageResource(if (!isSilent) R.mipmap.sw_on else R.mipmap.sw_off)
        }
 
        tv_action.setOnClickListener {
            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))
        }
    }
 
    override fun initView() {
        titleBar.gone()
        banner_landscape.adapter = cardBannerAdapter
        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()
    }
 
    private fun getData(){
        HttpManager.getHomeBackgroun().request(this){_,data->
            list.clear()
            list.addAll(data?: arrayListOf())
            val bgm = SPUtils.instance().getString(Const.User.BGM)
            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()
        }
    }
 
    override fun onUpdate(db: Double, time: Long) {
 
    }
 
    override fun onStop(filePath: String?) {
    }
 
    override fun onStartPlay() {
    }
 
    override fun onFinishPlay() {
        val p = cardBannerAdapter.playPosition
        cardBannerAdapter.playPosition = -1
        cardBannerAdapter.notifyItemChanged(p)
    }
 
    override fun onGetDuration(duration: Int) {
    }
 
    override fun onPause() {
        super.onPause()
        player.stopPlayMusic(true)
    }
}