Android 如何根据Edittext中输入的文本查找和播放音频文件

Android 如何根据Edittext中输入的文本查找和播放音频文件,android,android-mediaplayer,Android,Android Mediaplayer,当我键入动物名称并播放动物声音时,下面的代码可以正常工作,但如何使200个声音文件更简单。比如从edittext中获取字符串,从原始文件夹中搜索文件并播放。 如果输入的文本为“dog”,则应播放“dog.mp3” 应用给定的解决方案。在某处添加实用程序方法: public static int getResourceIdentifierForRawFile(Context context, String fileName) { final String packageName = con

当我键入动物名称并播放动物声音时,下面的代码可以正常工作,但如何使200个声音文件更简单。比如从edittext中获取字符串,从原始文件夹中搜索文件并播放。 如果输入的文本为“dog”,则应播放“dog.mp3”

应用给定的解决方案。在某处添加实用程序方法:

public static int getResourceIdentifierForRawFile(Context context, String fileName) {
    final String packageName = context.getPackageName();
    final Resources resources = context.getResources();
    return resources.getIdentifier(fileName, "raw", packageName);
}
并使用它将文件名转换为id值:

final String fileName = editText.getText().toString();
final int fileResId = getResourceIdentifierForRawFile(this, fileName); 
//"this" assumes you are inside a class that inherits from Context, i.e. an Activity
MediaPlayer.create(this, fileResId).start();

@PPartisan感谢您的回复,因为我是android新手,无法完全理解。我可以有一些其他的基本逻辑,这样我可以学习和应用。Best Answer@PPartisan,这段代码正是我需要的,唯一的事情是我们必须处理异常,如果fileResId=0。
final String fileName = editText.getText().toString();
final int fileResId = getResourceIdentifierForRawFile(this, fileName); 
//"this" assumes you are inside a class that inherits from Context, i.e. an Activity
MediaPlayer.create(this, fileResId).start();