Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private val links = mapOf(
- **"Billy" to "https://Billy_voice.mp3"**
- **"Sam" to "https://Sam_voice.mp3"**
- )
- private fun getCharacterInfo(selectedCharacter: String): String {
- return when (selectedCharacter) {
- **"Billy"-> """InfoInfoInfoInfoInfoInfoInfo"""**.trimMargin()
- **"Sam"-> """InfoInfoInfoInfoInfoInfoInfo"""**.trimMargin()
- else -> "No info available for this character."
- }
- }
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.charecter_selection)
- spinner = findViewById(R.id.characters)
- textView = findViewById(R.id.characterSelection)
- characterInfoTV = findViewById(R.id.characterInfoTV)
- val adapter = ArrayAdapter.createFromResource(
- this, R.array.Character_names, android.R.layout.simple_spinner_item
- )
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
- spinner.adapter = adapter
- spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- var previousPlayer: MediaPlayer? = null
- override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) {
- val selectedItem = parent.getItemAtPosition(position).toString()
- textView.text = selectedItem
- characterInfoTV.visibility = View.VISIBLE
- characterInfoTV.text = getCharacterInfo(selectedItem)
- spinner.prompt = "Select Your Character"
- Toast.makeText(applicationContext, "Selected: $selectedItem", Toast.LENGTH_SHORT).show()
- previousPlayer?.let {
- if (it.isPlaying) {
- it.stop()
- }
- it.release()
- }
- val selectedLink = links[selectedItem]
- val selectedPlayer = mediaPlayersMap[selectedItem] ?: MediaPlayer().apply {
- mediaPlayersMap[selectedItem] = this
- }
- previousPlayer = selectedPlayer
- selectedLink?.let {
- selectedPlayer.reset()
- selectedPlayer.setDataSource(it)
- selectedPlayer.setOnPreparedListener { mp ->
- mp.start()
- }
- selectedPlayer.prepareAsync()
- }
- previousPlayer = selectedPlayer
- mediaPlayersMap[selectedItem]= selectedPlayer
- }
- override fun onNothingSelected(parent: AdapterView<*>) {
- // Doing nothing
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment