添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

未解决的引用。android MediaPlayer中的上下文(kotlin)。

1 人关注

我创建了这个函数来使按钮在我点击它时发出声音,声音文件是位于 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()

But i get the following error when i run it Unresolved reference: Context

How should I edit my code to solve this problem?

顺便说一下,现在先忽略if语句,它在这个发展阶段总是变成真的。

android
kotlin
android-mediaplayer
android-music-player
soundplayer
Adel gamer
Adel gamer
发布于 2020-11-05
2 个回答
scccrt
scccrt
发布于 2020-11-05
已采纳
0 人赞同

Unresolved reference: Context

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

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

也有不同类型的Context的安卓系统中。

你有你的应用程序、活动和片段上下文,它也与不同的生命周期联系在一起,这取决于什么?Context you used.

如果这个函数是你的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()
    
snachmsm
snachmsm
发布于 2020-11-05
0 人赞同

将适当的主动 Context 传递给该方法

fun play_sound(ctx:Context, which_one:Int) {
    if(which_one == 1){