Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio 与MediaPlayer一起使用wave文件资源_Android Studio_Kotlin - Fatal编程技术网

Android studio 与MediaPlayer一起使用wave文件资源

Android studio 与MediaPlayer一起使用wave文件资源,android-studio,kotlin,Android Studio,Kotlin,我正试图学习Kotlin和Android Studio,方法是在Java中创建一个MediaPlayer并播放一个wave文件。我正在尝试使代码适应Kotlin: MainActivity.kt: package com.example.debugwaveres import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.content.Context import androi

我正试图学习Kotlin和Android Studio,方法是在Java中创建一个
MediaPlayer
并播放一个wave文件。我正在尝试使代码适应Kotlin:

MainActivity.kt

package com.example.debugwaveres

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.content.Context
import android.media.MediaPlayer
import android.view.View

//class MainActivity(private val context: Context) : AppCompatActivity() {
class MainActivity : AppCompatActivity() {
    private var player: MediaPlayer? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
    fun play(view: View) {
        if (player == null) {
            player = MediaPlayer.create(this, R.raw.metro1)
            player?.setOnCompletionListener {
                //stopPlayer()
            }
        }
        player?.start()
    }
}
.wav
资源
R.raw.metro1
已复制到
res/raw
资源目录:



活动\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:gravity="center"
    android:orientation="vertical" >

    <Button
        android:layout_width="99dp"
        android:layout_height="wrap_content"
        android:onClick="play"
        android:text="Play" />

</LinearLayout>

我试过你的密码。它很好用。但你可以这样尝试:

fun play(view : View) {
    if (player == null) {
        player = MediaPlayer.create(this, R.raw.metro1)
        player?.setOnCompletionListener {
            //stopPlayer()
        }
    }
    player?.setOnPreparedListener {
        it.start()
    }
}
fun play(view : View) {
    if (player == null) {
        player = MediaPlayer.create(this, R.raw.metro1)
        player?.setOnCompletionListener {
            //stopPlayer()
        }
    }
    player?.setOnPreparedListener {
        it.start()
    }
}