我的原始文件夹包含 a.mp3 到 z.mp3 的音频文件。 我想以编程方式播放它们。
int[ ] myMusic = {R.raw.(edittext.getText(first letter),R.raw.(edittext.getText(2nd letter)
如何让它循环播放所有文件?
答案 0 :(得分:0)
如果我理解正确......
// Get from a Context, such as Activity
Resources r = getResources();
String pkg = getPackageName();
// Extract and loops over text
String letters = edittext.getText().toString();
int size = letters.length();
int[] myMusic = new int[size];
for (int i = 0; i < size; i++) {
// Get the R.raw.letter values
int resId = r.getIdentifier(letters.charAt(i), "raw", pkg);
myMusic[i] = resId;
}
答案 1 :(得分:0)
我还没有在Android Studio上测试过,但试试这个:
int[] myMusic = new int[26]; // from a to z we have 26 letters
int i = 0;
for (char c = 'a'; c <= 'z'; c++){
int resId = getResources().getIdentifier(String.valueOf(c), "raw", getPackageName());
myMusic[i] = resId;
i++;
}
更新1:现在我明白了。
String editTextValue = yourEditText.getText().toString().toLowerCase();
final int length = editTextValue.length();
int[] myMusic = new int[length];
for (int i = 0; i < length; i++) {
char letter = editTextValue.charAt(i);
myMusic[i] = getResources().getIdentifier(String.valueOf(letter), "raw", getPackageName());
}
答案 2 :(得分:0)
我认为您想要在String
输入的EditText
内播放音乐。每个字符代表原始文件夹中的文件名。因此,您必须使用EditText
的每个characeter作为文件名。
int size = edittext.getText().toString().length();
int[] myMusic = new int[size ];
for(int i=0 ; i < size ; i++){
int resID=getResources().getIdentifier(edittext.getText().toString().substring(i,i), "raw", getPackageName());
myMusic[i] = resID;
}