我正在开发Android应用播放一些声音。 对于我创建的MediaPlayer的对象。 下面是代码:
mp = MediaPlayer.create(this, R.raw.testSound);
这里MP是空的Android 2.3.3(API等级10),我试图与Android(2.1,2.2等)的其他版本,它工作正常。 不过与Android 2.3.3(API等级10)MediaPlayer.create()调用返回null。
声音文件(testSound.wav)是一个wav文件。 我试图解析wav文件,看它是否已损坏或没有。 这似乎就好了。 另外,我可以使用Windows Media Player播放这个声音文件。
这里的testSound.wav文件: testSound.wav以下是详细的代码:
public MediaPlayer mp;
// OnCreate() funciton
mp = MediaPlayer.create(this, R.raw.testSound);
if(mp == null) // mp is null for Android 2.3.3 on real device and on AVD both
{
Toast msg = Toast.makeText(getApplicationContext(), "Could not play sound",
Toast.LENGTH_LONG);
msg.show();
}
//SetMediaFileToPlay() is called on Click event of button
void SetMediaFileToPlay()
{
AssetFileDescriptor afd;
Resources res = getResources();
Log.d("In SetMediaFileToPlay %s", g_strFocusedImage.toString());
switch (g_strFocusedImage)
{
case RESID_ALPHA1:
afd = res.openRawResourceFd(R.raw.ik);
if(mp != null)
{
mp.reset();
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
afd.getLength());
}
break;
......... //other cases
}
if(mp != null)
{
mp.prepare();
mp.start();
}
}
请帮忙。 谢谢。