繁体   English   中英

未解决的参考:android MediaPlayer (kotlin) 中的上下文

[英]Unresolved reference: Context in android MediaPlayer (kotlin)

我创建了这个函数来让按钮在我点击时发出声音,声音文件是位于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 语句,在这个开发阶段它总是会变成真的。

未解决的参考:上下文

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

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

Android 中也有不同类型的Context

你有你的应用程序,活动,和片段上下文,这也依赖于这取决于你使用什么语境下不同的生命周期。

如果此函数是您的 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()
    }
}

将适当的活动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()
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM