2017-08-24 76 views
-1

创建应用软件声音动物 ,但我有一个问题的声音不打 与名称,形象动物名单的准则和声音播放声音从原始文件在科特林

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 
} 

}

什么问题?使用以下代码中科特林

回答

-1

尝试:

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

下面的代码被从Java到科特林转换。希望它也可以运行。

编辑:acc @ bakawali暗示代替这个使用view得到context

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

如果您渣油将是如下:

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

确保anum.aSound是声音不带扩展名

例只是名字: 声音文件:ringtone.mp3 - 写:

.getIndentifier("ringtone","raw",getPackageName()) 
+0

我有问题.create() – JamilHammash

+0

最新错误你是g ETTING? – Sahil

+0

错误是创建是有红线,我想是因为在我的适配器我得到另一个活动,你可以看到这一行:'var myView = layoutInflater.inflate(R.layout.design,null) ' – JamilHammash