0

ループを使用して未加工のメディア ファイルを再生しようとしています。メディア ファイルを再生するための同期メソッドを作成しました。これはエミュレータでは機能しますが、実際のデバイスでは機能しません。

サウンドを再生する必要がある Question 用の単純な Bean を作成しました。

public class Question {
private String mQuestionString;
private int mSoundFile;
private int mAnswer;
private int mQuestionNo;

public Question() {

    mQuestionNo = 0;
    mQuestionString = "";
    mSoundFile = 0;
    mAnswer = 0;
}

public Question(int mQuestionNo, String mQuestionString, int mSoundFile,
        int mAnswer) {
    super();
    this.mQuestionNo = mQuestionNo;
    this.mQuestionString = mQuestionString;
    this.mSoundFile = mSoundFile;
    this.mAnswer = mAnswer;
}

public String getQuestionString() {
    return mQuestionString;
}

public void setQuestionString(String mQuestionString) {
    this.mQuestionString = mQuestionString;
}

public int getSoundFile() {
    return mSoundFile;
}

public void setSoundFile(int mSoundFile) {
    this.mSoundFile = mSoundFile;
}

public int getAnswer() {
    return mAnswer;
}

public void setAnswer(int mAnswer) {
    this.mAnswer = mAnswer;
}

public int getQuestionNo() {
    return mQuestionNo;
}

public void setQuestionNo(int mQuestionNo) {
    this.mQuestionNo = mQuestionNo;
}

@Override
public String toString() {
    return "Question " + mQuestionNo + ". " + mQuestionString;
}

}

これはアクティビティの私のコードです

public class LQActivity extends Activity{

    private Vector<Question> mQuestions = null;
private TextView tvQuestion = null;
private Button btnSubmit = null;
private Button btnNext = null;
    ...

  private void prepareQuestions() {
    // TODO Auto-generated method stub
    mQuestions = new Vector<Question>();
    mQuestions.add(new Question(1, "Count the number of the Tabala played",
            R.raw.q1, 5));
    mQuestions.add(new Question(2,
            "Count the number of the persons visited temple", R.raw.q2, 3));
    mQuestions
            .add(new Question(3, "Count the number of frogs", R.raw.q3, 6));
    mQuestions.add(new Question(4,
            "Count the number of the cuckoo on the tree", R.raw.q4, 8));
    mQuestions.add(new Question(5, "Count the number of the flute played",
            R.raw.q5, 7));

}

private synchronized void playQuestion(Question question) {


    mMediaPlayer = MediaPlayer.create(this, question.getSoundFile());

    mMediaPlayer.start();
    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        if (mMediaPlayer != null) {
            mMediaPlayer.release();
        }
    }
            mMediaPlayer.release();
        }

}

問題はmMediaPlyer.create()nullを返すことです

正確な問題がわかりません。あなたの助けに感謝します。前もって感謝します...

4

1 に答える 1

0
mMediaPlyer.create() is returning null

原因は、破損した mp3 ファイルまたはサポートされていないファイルの使用によるものです。リンク android がサポートするメディア形式を確認してください

于 2013-03-20T06:45:09.217 に答える