2017-07-22 2 views
0

Der folgende Code, den ich gemacht habe, funktioniert gut, wenn ich den Tiernamen eintippe und den Tiersound spielt, aber wie kann ich 200 Sounddateien einfacher machen. wie bekomme ich die Zeichenfolge von editiertext und suche die Datei aus rohen Ordner und spielen. Wenn der eingegebene Text ist "Hund" sollte es "dog.mp3"So finden und spielen Sie die Audiodatei entsprechend dem in Edittext eingegebenen Text

editText.addTextChangedListener(new TextWatcher() { 
       public void afterTextChanged(Editable s) { 
        { 
         String name  = editText.getText().toString(); 
         if(name.contentEquals("cow")){ 

          mp = MediaPlayer.create(Selection1Page1.this, R.raw.cow); 
          mp.start(); 
         } 
         if(name.contentEquals("bat")){ 

          mp = MediaPlayer.create(Selection1Page1.this, R.raw.bat); 
          mp.start(); 
         } 
         if(name.contentEquals("cat")){ 

          mp = MediaPlayer.create(Selection1Page1.this, R.raw.cat); 
          mp.start(); 
         } 
        } 

       } 
+0

@PPartisan Vielen Dank für die Antwort, wie ich bin neu auf Android kann ich‘ t es voll zu bekommen. kann ich eine andere grundlegende Logik dafür haben, damit ich lernen und mich bewerben kann. –

Antwort

0

die Lösung here gegeben Nehmen spielen. Fügen Sie ein Dienstprogramm Methode irgendwo:

public static int getResourceIdentifierForRawFile(Context context, String fileName) { 
    final String packageName = context.getPackageName(); 
    final Resources resources = context.getResources(); 
    return resources.getIdentifier(fileName, "raw", packageName); 
} 

und es verwenden, den Namen einer Datei in einen ID-Wert zu konvertieren:

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(); 
+0

Beste Antwort @PPartisan, Dieser Code tut die genaue Sache, was ich brauche, Die einzige Sache ist, müssen wir die Ausnahme behandeln, wenn die fileResId = 0. –

Verwandte Themen