极端新手在这里!
我在/ res / raw目录中有十个声音剪辑。我使用单个MediaPlayer实例(mp2)来播放剪辑。我目前正在使用if语句选择要播放的所需剪辑,但我确信有更有效的方法来执行此操作。我想根据计数器变量的值来改变正在播放的十个片段中的哪一个...这样如果counter = 1则播放“one”,如果counter = 2,则播放“two”,等等。 / p>
另外一个相关问题......如果我有4种不同语言的这10个片段,我如何根据用户对应用语言的选择来引用正确的片段? (不是系统区域设置)
switch (me.getAction()) {
case MotionEvent.ACTION_DOWN:
touched = true;
counter = (counter + 1);
// get soundfile from resources
mp = MediaPlayer.create(getBaseContext(), R.raw.hammer_blow);
mp.start(); // Starts your sound
if (counter == 1) {
mp2 = MediaPlayer.create(getBaseContext(), R.raw.one);
mp2.start();
}// Starts your sound
if (counter == 2) {
mp2 = MediaPlayer.create(getBaseContext(), R.raw.two);
mp2.start();
}// Starts your sound
if (counter == 3) {
mp2 = MediaPlayer.create(getBaseContext(), R.raw.three);
mp2.start();
}// Starts your sound
答案 0 :(得分:1)
我会重构代码,只在计数器上加一个开关;
int sound;
switch (counter)
{
case 1:
sound = R.raw.one;
break;
case 2:
sound = R.raw.two;
break;
etc.
}
mp2 = MediaPlayer.create(getBaseContext(), sound);
mp2.start();
我不知道语言的东西。也许可以将应用程序语言设置为用户选择的值?然后原始资源将被正确计算出来。