1

リストの配列を使用して、再生するランダムな .wav ファイルをコーディングしようとしています。いくつかのボタンがあり、それぞれが別々の配列からランダムなファイルの異なるセットを再生します。Toast に名前が表示されていても、MediaPlayer.create でファイル名を受け入れることができないようです。

package com.golf.testwaves;


import java.util.Random;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.media.MediaPlayer;



public class MainActivity extends Activity implements OnClickListener {

    static final String [] badshot =   { "allthat", "happy10", "happy27", "happy4", "inhole1"
            };

    MediaPlayer sayIt;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button a = (Button)findViewById(R.id.button1);
    a.setOnClickListener(this);

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    Random r = new Random();
    String random1 = badshot [r.nextInt(4)];
    Toast.makeText(MainActivity.this,random1,Toast.LENGTH_SHORT).show(); //Verify what .raw file was picked.
    sayIt = MediaPlayer.create(MainActivity.this,R.raw.happy4); // This needs to be where it picks the random .wav file.
    sayIt.start();



}
@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
}

}

「happy4」を使用して、コードが 1 つの .wav ファイルで機能することを確認しました。しかし、ファイル名に random1 を使用するための構文をまだ理解できないようです。

助けてくれてありがとう。

4

1 に答える 1

0

これを試して。-

int resId = getResources().getIdentifier(random1, "raw", getPackageName());
sayIt = MediaPlayer.create(MainActivity.this, resId);
于 2013-09-29T01:12:31.377 に答える