我的应用程序上的原始文件夹中有一些声音。 有时我需要播放声音,但我不知道究竟是哪个。
示例:
String actualSound =“hit”
playSound(mediaPlayer,R.Raw.actualSound));
我当然想玩R.raw.hit,但我不知道该怎么做。
感谢。
答案 0 :(得分:13)
您可以使用Resources.getIdentifier()
获取原始资源的数字ID,然后在播放功能中使用它:
Resources res = context.getResources();
int soundId = res.getIdentifier(actualSound, "raw", context.getPackageName());
playSound(mediaPlayer, soundId);
请注意,通常情况下,您不应该这样做。通过数字标识符(即R
- 限定常量)访问资源更有效。如果您每次想要在游戏中播放声音时都要执行上述操作,这一点尤为重要。最好使用声音名称(或更好的:枚举值)到资源标识符甚至预先加载的声音样本的映射。
答案 1 :(得分:1)
快速解答:
public class WebsiteActivity extends AppCompatActivity {
MediaPlayer mediaPlayer;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_website);
Resources res = getResources();
int sound = res.getIdentifier(music, "raw", getPackageName());
//Play music
mediaPlayer = MediaPlayer.create(getApplicationContext(), sound);
mediaPlayer.start();
}
@Override
protected void onPause() {
super.onPause();
mediaPlayer.stop();
mediaPlayer.reset();
}
}
答案 2 :(得分:-2)
只需使用String actualSound = getString(R.Raw.actualSound)
。