Kotlin MediaPlayer 简单用法



我是 Kotlin 的新手,正在尝试制作一个简单的 AudioManager(包装 MediaPlayer(。

我希望全班播放音频。

这是我的班级:

package com.example.myappname
import android.media.MediaPlayer
interface AudioManagerInput {
fun startSound()
fun stopSound()
}
class AudioManager: AudioManagerInput {
// Instance variables
private var mediaPlayer: MediaPlayer? = null
// AudioManagerInput methods
override fun startSound() {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer()
mediaPlayer?.setDataSource("R.raw.songone") // ???
}
mediaPlayer?.start()
}
override fun stopSound() {
mediaPlayer?.stop()
}
}

我在设置歌曲时遇到问题。

我希望加载一个本地文件R.raw.songone这是一个位于res/raw中的.wav文件。

如何获取字符串到其路径?

我已经搜索了包含使用MediaPlayer的其他解决方案的教程,但遇到了不知道要导入的内容,无法调用create或找不到context(无论那是什么(的问题。

将上下文导入 AudioManager:

import android.content.Context

修改类或其方法签名,如下所示:

class AudioManager(private val context: Context): AudioManagerInput

现在我们可以将上下文传递给MediaPlayer

override fun startSound() {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(context, R.raw.yourSound);
}
mediaPlayer?.start()
}

要从活动初始化音频管理器:

var audioManager = AudioManager(this)

要手动访问raw文件:按名称从 res/raw 读取/写入。

相关内容

  • 没有找到相关文章

最新更新