我正在創建一個根據成功或失敗播放兩種聲音的爭奪文字遊戲應用程序。在猜測成功的情況下,遊戲播放一個聲音文件。在猜測失敗時,遊戲播放另一個聲音文件。我寫了下面的代碼如何在Android中播放聲音
public void checkWord()
{
MediaPlayer mp;
if(abcd.equals(etGuessedWord.getText().toString()))
{
WordLibrary.setMyInt(WordLibrary.getMyInt() + 10);
tvScore.setText(String.valueOf(WordLibrary.getMyInt()));
new AlertDialog.Builder(JumbledWords.this).setMessage("Awesome!!!")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
wordIdx = (wordIdx + 1) % getSize();
sWord = getScrambledWord(word_list[wordIdx]);
tvScrambledWord.setText(sWord);
abcd = word_list[wordIdx];
++word_array_length;
etGuessedWord.setText("");
if(word_array_length >= word_list.length)
{
new AlertDialog.Builder(JumbledWords.this).setMessage("Level Complete!!! ")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
start = 0;
finish();
}
}).create().show();
}
}
}).create().show();
**mp = MediaPlayer.create(this, R.raw.clap);**
mp.start();
}
else
{
new AlertDialog.Builder(JumbledWords.this).setMessage("Wrong. Try Again")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
etGuessedWord.setText("");
}
}).create().show();
**mp = MediaPlayer.create(this, R.raw.oop);**
mp.start();
}
}
代碼mp = MediaPlayer.create(this,R.raw.oop)給出異常。我盡我所能避免了異常,如IOException。應用程序暫停並給出「強制關閉」。代碼有什麼問題?有沒有其他的編程方式來加載聲音?請幫幫我。
聲音文件位於res/raw文件夾中。這是通過R.raw.clap確定的 – 2011-06-08 14:53:58
我的意思是文件名應該是'clap.wav',而不僅僅是'clap'(當然假設它是wav格式的)。 – 2011-06-08 14:57:05