![](/img/trans.png)
[英]Android kotlin - unresolved reference for with(context) inside fragment
[英]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.