在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 }
}
有什么问题 ?
尝试在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())