簡體   English   中英

"Android MediaPlayer.Create() 返回 null"

[英]Android MediaPlayer.Create() returns null

我正在開發一個播放一些聲音的 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();
  }

}

請幫忙。 謝謝。

我正在開發一個播放一些聲音的 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 文件以查看它是否已損壞。 好像還好。 此外,我可以使用 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();
  }

}

請幫忙。 謝謝你。

我正在開發一個播放一些聲音的 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 文件以查看它是否已損壞。 好像還好。 此外,我可以使用 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();
  }

}

請幫忙。 謝謝你。

我正在開發一個播放一些聲音的 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 文件以查看它是否已損壞。 好像還好。 此外,我可以使用 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();
  }

}

請幫忙。 謝謝你。

我在我的應用程序中注意到 uri 中有一個空格,
即: “https://zzzzzzzzzz.amazonaws.com/Moed Katan/MDK-018.mp3”
正在返回 null 而沒有空格的 uri 工作得很好。

這很有趣,因為在常規瀏覽器中它會自動將空格替換為“%20”並播放文件。

有什么辦法可以防止這種情況嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM