6

私はいくつかの音を再生するAndroidアプリを開発しています。そのために、MediaPlayerのオブジェクトを作成しています。以下はコードです:

mp = MediaPlayer.create(this, R.raw.testSound);

ここで、mpはAndroid 2.3.3(APIレベル10)ではnullです。他のバージョンのAndroid(2.1、2.2など)で試してみましたが、正常に動作します。ただし、Android 2.3.3(APIレベル10)では、MediaPlayer.create()呼び出しはnullを返します。

サウンドファイル(testSound.wav)はwavファイルです。wavファイルを解析して、破損していないかどうかを確認してみました。それはちょうどいいようです。また、WindowsMediaPlayerを使用してこのサウンドファイルを再生することもできます。

これが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();
  }

}

助けてください。ありがとうございました。

4

3 に答える 3

9

ファイルはWAVE8,000HzMP3 8 kbit / s形式を使用しますが、Androidは8ビットおよび16ビットの線形PCMのみをサポートします:http://developer.android.com/guide/appendix/media-formats.html

ファイルを修正してみてください。

于 2012-08-05T13:32:25.187 に答える
0

nullデバイスがオーディオの再生をサポートしていないために戻ることがありますwatch

デバイスがMediaPlayerをサポートしているかどうかを確認するには、でnullチェックを実行できますMediaPlayer.create()

グーグルサンタを追いかけようアプリで見つけました

于 2019-11-12T10:37:00.927 に答える
0

null何かがうまくいかなかったことを伝えているようです。Googleはこれを「androidmediaplayer.create()returns null」の最初の結果として示しているので、コードを調べて確認することをお勧めします

  • お使いのデバイスがVasilyによって示されるフォーマットをサポートしている場合
  • 渡したファイルが実際に存在するか、すでに作成されている場合

私の場合、に渡す前に空のファイルを作成していましたMediaplayer.create。これはエミュレートされたデバイスでは正常に機能しましたが、個人のデバイスではクラッシュしました。

于 2020-10-11T23:37:53.047 に答える