Preetthee

Untitled

Apr 10th, 2023
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. private val links = mapOf(
  2.  
  3. **"Billy" to "https://Billy_voice.mp3"**
  4. **"Sam" to "https://Sam_voice.mp3"**
  5. )
  6. private fun getCharacterInfo(selectedCharacter: String): String {
  7. return when (selectedCharacter) {
  8. **"Billy"-> """InfoInfoInfoInfoInfoInfoInfo"""**.trimMargin()
  9. **"Sam"-> """InfoInfoInfoInfoInfoInfoInfo"""**.trimMargin()
  10. else -> "No info available for this character."
  11. }
  12. }
  13. override fun onCreate(savedInstanceState: Bundle?) {
  14. super.onCreate(savedInstanceState)
  15. setContentView(R.layout.charecter_selection)
  16. spinner = findViewById(R.id.characters)
  17. textView = findViewById(R.id.characterSelection)
  18. characterInfoTV = findViewById(R.id.characterInfoTV)
  19. val adapter = ArrayAdapter.createFromResource(
  20. this, R.array.Character_names, android.R.layout.simple_spinner_item
  21. )
  22. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
  23. spinner.adapter = adapter
  24. spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
  25. var previousPlayer: MediaPlayer? = null
  26. override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) {
  27. val selectedItem = parent.getItemAtPosition(position).toString()
  28. textView.text = selectedItem
  29. characterInfoTV.visibility = View.VISIBLE
  30. characterInfoTV.text = getCharacterInfo(selectedItem)
  31. spinner.prompt = "Select Your Character"
  32. Toast.makeText(applicationContext, "Selected: $selectedItem", Toast.LENGTH_SHORT).show()
  33. previousPlayer?.let {
  34. if (it.isPlaying) {
  35. it.stop()
  36. }
  37. it.release()
  38. }
  39. val selectedLink = links[selectedItem]
  40. val selectedPlayer = mediaPlayersMap[selectedItem] ?: MediaPlayer().apply {
  41. mediaPlayersMap[selectedItem] = this
  42. }
  43. previousPlayer = selectedPlayer
  44. selectedLink?.let {
  45. selectedPlayer.reset()
  46. selectedPlayer.setDataSource(it)
  47. selectedPlayer.setOnPreparedListener { mp ->
  48. mp.start()
  49. }
  50. selectedPlayer.prepareAsync()
  51. }
  52. previousPlayer = selectedPlayer
  53. mediaPlayersMap[selectedItem]= selectedPlayer
  54. }
  55.  
  56. override fun onNothingSelected(parent: AdapterView<*>) {
  57. // Doing nothing
  58. }
  59. }
  60.  
  61.  
  62.  
  63.  
  64. }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment