【问题标题】:kotlin RecyclerView play soundkotlin Recycler查看播放声音
【发布时间】:2022-01-02 07:24:52
【问题描述】:

我想用按钮播放声音。 这是我的代码(adapter.kt)

package com.example.koszono

import android.content.Intent
import android.media.MediaPlayer
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.recycler_row.view.*

class Adapter (val koszones: ArrayList<String>,
            val hangList : ArrayList<Int>): RecyclerView.Adapter<Adapter.KoszonesVH>()       {
class KoszonesVH (itemView: View): RecyclerView.ViewHolder(itemView){


}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): KoszonesVH {
    val itemView = LayoutInflater.from(parent.context).inflate(R.layout.recycler_row, parent, false)
    return KoszonesVH(itemView)
}

override fun onBindViewHolder(holder: KoszonesVH, position: Int) {
    holder.itemView.recycler_textView.text = koszones.get(position)


    var mMediaPlayer: MediaPlayer? = null
    holder.itemView.recycler_play.setOnClickListener {

        if (mMediaPlayer == null) {
            mMediaPlayer = MediaPlayer.create(this, R.raw.hello)
            mMediaPlayer!!.isLooping = false
            mMediaPlayer!!.start()
        } else mMediaPlayer!!.start()



    }







    holder.itemView.setOnClickListener {
        val intent = Intent (holder.itemView.context, activity_tartalom::class.java)
        intent.putExtra("koszones", koszones.get(position))
        intent.putExtra("hang_intent", hangList.get(position))
        holder.itemView.context.startActivity(intent)
    }
}

override fun getItemCount(): Int {
    return koszones.size
}
}

错误代码:不能使用提供的参数调用以下函数: public open fun create(p0: Context!, p1: Uri!): MediaPlayer!在 android.media.MediaPlayer 中定义 public open fun create(p0: Context!, p1: Int): MediaPlayer!在android.media.MediaPlayer中定义

【问题讨论】:

    标签: android kotlin android-recyclerview playsound


    【解决方案1】:

    我认为错误是 Mediaplayer create 方法中的 this 参数,因为参数必须是上下文但您的 this 是适配器,所以:

    MediaPlayer.create(holder.itemView.context, R.raw.hello)
    

    【讨论】:

      猜你喜欢
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多