视频数组在调用时总是返回数组中的最后一个

问题描述 投票:0回答:1

我正在尝试用原始文件夹中的文件填充数组。然后,我在该阵列中选择一个随机插槽,并用它来播放该文件。

但是当我这样做时,每个插槽似乎都包含了阵列中最终的视频。我不确定这是什么原因...

    var videos = Array(5){R.raw.c0; R.raw.c1; R.raw.c2; R.raw.c3; R.raw.c4};

    videoView.setVideoPath("android.resource://" + getPackageName() + "/" + videos[Random.nextInt(0, 4)])
    videoView.requestFocus()
    videoView.start()
android arrays kotlin video android-videoview
1个回答
0
投票

您错误地初始化了数组。 {...}位实际上是一个lambda,它使用一个整数并返回数组中该索引的内容,因此,由于R.raw.c4是该块中的最后一条语句,因此它将所有五个索引都设置为该值。

您可能是说:

val values = intArrayOf(R.raw.c0, R.raw.c1, R.raw.c2, R.raw.c3, R.raw.c4)
© www.soinside.com 2019 - 2024. All rights reserved.