[英]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.