在Kotlin播放原始文件中的声音

我创建动物的应用程序声音,但我有一个问题声音不是播放名称,图像和声音动物列表的代码

listanimales.add(animals("Cat",R.drawable.a1,R.raw.a1)) listanimales.add(animals("Dog",R.drawable.a2,R.raw.a2)) listanimales.add(animals("Fox",R.drawable.a3,R.raw.a3)) 

 override fun getView(postion: Int, p1: View?, p2: ViewGroup?): View? { var anum = mylistofAnimals[postion] var myView = layoutInflater.inflate(R.layout.design,null) myView.anImage.setImageResource(anum.aImage!!) myView.anName.text = anum.aName!! myView.anImage.setOnClickListener { player = MediaPlayer() try { player!!.setDataSource(anum.aSound) player!!.prepare() player!!.start() }catch (ex:Exception){ } } return myView } 

最后是我的班级

 class animals{ var aName:String?=null var aImage:Int?=null var aSound:Int?=null constructor(aName:String,aImage:Int,aSound:Int){ this.aName = aName this.aImage = aImage this.aSound = aSound } 

}

有什么问题 ?

One Solution collect form web for “在Kotlin播放原始文件中的声音”

尝试在kotlin中使用以下代码:

 player = MediaPlayer() player.create(this,anum.aSound) player!!.start() 

下面的代码从java转换到kotlin。 希望它也可以运行。

编辑:按照@ bakawali建议,而不是这个使用view来获取context

 val mediaPlayer = MediaPlayer.create(mView.Context, resID) mediaPlayer.start() 

你的resID将如下所示:

 var resID = getResources().getIdentifier(anum.aSound, "raw", getPackageName()) 

确保anum.aSound只是没有扩展名的声音

例如:声音文件:ringtone.mp3 – 写入:

 .getIndentifier("ringtone","raw",getPackageName()) 
  • Tornadofx - 如何将参数传递给每一个实例的片段
  • 为什么Smartcast在nullcheck之后不工作
  • 如何在Kotlin模式匹配可选项?
  • 如何显示从Android库反编译的Kotlin代码
  • 为什么我无法获取我的JSON文件的值?
  • 如何使用OnClickListener创建简单的事件//更改文本或颜色
  • Rx-Kotlin awaitTerminalEvent永远不会完成
  • Kotlin kapt,gradle和ebean插件构建失败
  • 将Scala函数转换为Kotlin函数
  • 修饰符“覆盖”不适用于“getter”
  • 解析xml kotlin android
  • Kotlin language will be the best programming language for Android.