Android get R.raw from variable

后端 未结 2 1896
执笔经年
执笔经年 2020-12-07 02:35

i have some sounds in a raw folder on my app. And sometimes i need to play a sound, but i don\'t know exactly which is.

Example :

String actualSound         


        
2条回答
  •  自闭症患者
    2020-12-07 03:01

    You can obtain the numeric ID of your raw resource using Resources.getIdentifier() and then use it in your play function:

    Resources res = context.getResources();
    int soundId = res.getIdentifier(actualSound, "raw", context.getPackageName());
    playSound(mediaPlayer, soundId);
    

    Note that generally, you shouldn't do this. It is more efficient to access resources by numeric identifier (i.e. R-qualified constant). This would especially matter if you were to do the above every time you want to play sound in a game. It is better to use a mapping of sound names (or better yet: enum values) to resource identifiers or even pre-loaded sound samples.

提交回复
热议问题