【问题标题】:Unresolved reference: Context in android MediaPlayer (kotlin)未解决的参考:android MediaPlayer (kotlin) 中的上下文
【发布时间】:2021-02-18 03:18:32
【问题描述】:

我创建这个函数是为了让按钮在点击时发出声音,声音文件是位于raw/button_click.mp3目录下的mp3。

fun play_sound(which_one:Int) {
    if(which_one == 1){
        val mediaPlayer:MediaPlayer? = MediaPlayer.create(Context,R.raw.button_click)
        mediaPlayer?.start()
}
}

但是当我运行它时出现以下错误Unresolved reference: Context

我应该如何编辑我的代码来解决这个问题?

顺便说一句,暂时忽略 if 语句,在这个开发阶段它总是正确的。

【问题讨论】:

    标签: android kotlin android-mediaplayer android-music-player soundplayer


    【解决方案1】:

    未解决的参考:上下文

    您收到以下错误,因为您使用 Class 而不是变量名作为参数。

    fun play_sound(which_one:Int) {
        if(which_one == 1) {
            val mediaPlayer:MediaPlayer? = MediaPlayer.create(Context,R.raw.button_click)
            mediaPlayer?.start()
        }
    }
    

    Android 中也有不同种类的上下文

    您有自己的应用程序、活动和片段上下文,它们也与不同的生命周期相关联,具体取决于您使用的上下文

    如果此函数是您的 Activity 的成员。

    fun play_sound(which_one:Int) {
        if(which_one == 1) {
            val mediaPlayer:MediaPlayer? = MediaPlayer.create(this@YourActivityHere,R.raw.button_click)
            mediaPlayer?.start()
        }
    }
    

    片段

    fun play_sound(which_one:Int) {
        if(which_one == 1) {
            val mediaPlayer:MediaPlayer? = MediaPlayer.create(requireContext(),R.raw.button_click)
            mediaPlayer?.start()
        }
    }
    

    【讨论】:

      【解决方案2】:

      将正确的活动Context 传递给此方法

      fun play_sound(ctx:Context, which_one:Int) {
          if(which_one == 1){
              val mediaPlayer:MediaPlayer? = MediaPlayer.create(ctx, R.raw.button_click)
              mediaPlayer?.start()
          }
      }
      

      【讨论】:

      • 同样的事情 ctx 不起作用它输出相同的错误信息
      • @Adelgamer 您是否将其作为参数添加到您的方法中?
      • 如果你从Activity开始这个方法,那么你可以通过this作为Activity是一个Context实例(extends it
      猜你喜欢
      • 2021-11-02
      • 2019-10-11
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多