安卓MediaPlayer.Create()返回null(Android MediaPlayer.C

2019-06-26 18:21发布

我正在开发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();
  }

}

请帮忙。 谢谢。

Answer 1:

您的文件采用WAVE 8,000Hz MP3 8 kbit / s的格式,而Android仅支持8位和16位线性PCM: http://developer.android.com/guide/appendix/media-formats.html 。

尝试修复您的文件。



文章来源: Android MediaPlayer.Create() returns null