【问题标题】:Koltin, setting a mediaplayer from a variableKoltin,从变量设置媒体播放器
【发布时间】:2021-07-15 18:01:43
【问题描述】:

我正在开发一个应用程序,对于特定的选定项目,应分配特定的 .mp3。 (就像我选择 Dachshund,然后当我的函数这样说时,我会播放 dachshund_1.mp3、dachshund_2.mp3 等)。是否有可能以某种方式创建一个包含特定名称的变量,然后将其分配给 mediaplayer.create?

我想做的如下所示:

// I have a function here that returns with the specific string
// I have a cnt variable in the code which helps determine which text and sound comes now
fun DogHandler(cnt:Int, receiptName: String) :String
{
   return dogName + "_" +cnt.toString()
}

这个函数被调用,它返回的字符串应该去媒体播放器。 Cnt 比方说 10

var tmp = DogHandler(dachshund, cnt);     // tmp = dachsund_10
mediaPlayer = MediaPlayer.create(context, R.raw.tmp)
mediaPlayer.start()

【问题讨论】:

  • 我很难理解你的问题。我看到你有一个方法DogHandler 来生成名称,但是 MP3 在哪里?您的 Android 项目中的 raw 中是否有文件 dachsund_0dachsund_10
  • 原来如此,它们在原始文件夹中

标签: android kotlin mp3 raw


【解决方案1】:

据我所知,无法动态生成资源 ID(如 R.raw.something)。但是,您可以简单地创建它们的列表并按索引访问它。

val dachsunds = listOf(
    R.raw.dachsund_0,
    R.raw.dachsund_1,
    R.raw.dachsund_2,
    R.raw.dachsund_3,
    // ...
    R.raw.dachsund_10
)

val dachsund = dachsunds[dachsundIndex]
val mediaPlayer = MediaPlayer.create(context, dachsund).apply {
    start()
}

【讨论】:

  • 这是一个聪明的方法!看起来很完美,晚上去试试,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多