【问题标题】:How to play a different sound file from res>raw如何从 res>raw 播放不同的声音文件
【发布时间】:2020-04-16 06:56:20
【问题描述】:

在我的班级下

private lateinit var mp: MediaPlayer

在覆盖下我有

mp = MediaPlayer.create(this, R.raw.a1)

函数buttonPlayClick也就是buttonPlay

fun buttonPlayClick(v: View)
{
    if (mp.isPlaying)
    {
        mp.pause()
        buttonPlay.text = "PLAY"

} else {
    mp.start()
        buttonPlay.text = "PAUSE"
    }
}

我正在使用下面的代码来指向一个声音文件

mp = MediaPlayer.create(this, R.raw.a1)

目前,该命令指向 res>raw 中名为 a1 的声音文件

我正在一点一点地学习 Kotlin,我正在尝试使用以下命令播放不同的声音文件(将 a1 更改为 x)

mp = MediaPlayer.create(this, R.raw.x)

我希望在应用程序中的某个时刻,我可以定义 x = a1a2a3 来播放不同的声音文件,但它不会那样工作。我还注意到声音文件不能只是一个整数值。声音文件很短(3到10秒)

感谢大家的帮助!

【问题讨论】:

    标签: android kotlin android-music-player


    【解决方案1】:

    你可以这样做:

    var a1 = R.raw.a1
    var a2 = R.raw.a2
    var a3 = R.raw.a3
    

    或者你可以像这样使用JAVA

    int setMusic(String mMusic){
      return this.getResources().getIdentifier(mMusic, "raw", this.getPackageName());
    }
    

    然后这样称呼它:

    mp = MediaPlayer.create(this, setMusic("a1"))

    mp = MediaPlayer.create(this, setMusic("a2"))

    【讨论】:

    • 谢谢!这解决了这个问题,但我似乎无法让它在一段时间循环中工作。是否有可能让它循环工作?
    • @Bob你能解释一下吗,你想按顺序播放a1,a2 a3对吗?
    • 抱歉回复晚了。我通过使用此代码根据值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多