[英]Playing musics with ImageButton android
我有一个要与ImageButton一起播放的音乐(.mp3)列表,我想播放每个声音及其ID
首先,我有一个具有字段_id的数据库。 然后,我试图
final String ambil = kata.get(3)
用于从我使用的查询中检索_id。 然后,我用
speaker.setTag(ambil);
扬声器是一个ImageButton,我想为其每个按钮加上_id标记,以使声音彼此不同。
然后,我订购了与此相关的所有声音文件
int names[] = {R.raw.a,R.raw.a,R.raw.c};
最后,我想以此创建一个MediaPlayer
MediaPlayer mp = MediaPlayer.create(LazyAdapter.this, R.raw.names[ambil]);
我的算法正确吗?
现在,我将提示如何以简单的方式完成它。 您可以使用原始资源创建一个数组:
int names[] = new int {R.raw.a,R.raw.b,R.raw.c};
不要像您那样做一个String数组,这将无法工作。 使用上面的示例,并像这样创建mediaplayer:
MediaPlayer mp = MediaPlayer.create(LazyAdapter.this, names[0]);
从上面的示例中,我看到了一些错误的内容。
首先,您不能传递字符串来标识数组的编号。 您这样做是这样的:
final String ambil = kata.get(3)
并且您试图获取mediaPlayer的资源,例如:
MediaPlayer mp = MediaPlayer.create(LazyAdapter.this, R.raw.names[ambil]);
在那里,您传递了一个字符串以从names [] ---> R.raw.names [ambil]]获取资源。 不要写R.raw.names [],只写名字[]。
另外,您必须传递一个整数才能从数组中获取值,例如:
names[0]
问题是,您从数据库中获得了哪个整数,您说您获得了id,但是值是多少? 为了便于说明,如果您写入名称[0],则意味着您获得了数组的第一个值(因为数组以0开头)。 在您的情况下,请参考资源R.raw.a。 如果要引用第二首歌曲,则必须写名称[1]。
我不知道您如何实现数据库以及以何种方式提供_id。 但是请确保以这种方式给出_id,使其不会高于资源数量。 如果您创建一个自动增量ID,则当该值大于歌曲数时,它将无法使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.