2014-02-27 92 views
0

我想在Android應用程序中播放音頻,但在代碼中出現AssetFileDescriptor asset1和其下的行。這是代碼:音頻 - android

MediaPlayer mp; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
     play(); 
} 

public void play() { 

      String file = "audio.mp3"; 
      AssetFileDescriptor asset1 = getAssets().openFd(file); 
      mp.setDataSource(asset1.getFileDescriptor(), asset1.getStartOffset(), asset1.getLength()); 
      asset1.close(); 

      mp.prepare(); 
      mp.start(); 
    } 

你能幫我找到解決辦法嗎?

+0

你正在初始化** MediaPlayer **? –

+0

您聲明變量'mp',但從未將其設置爲對象的實例。在onCreate()中添加:mp = new MediaPlayer();如InnocentKiller所示,您還需要嘗試/抓取。 – NigelK

+0

你好,我現在初始化mp裏面創建。 – user3347841

回答

0

試試這個。

public void play() { 
    try { 
     AssetFileDescriptor descriptor = getAssets().openFd("audio.mp3"); 
     mp.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength()); 
     descriptor.close(); 

     mp.prepare(); 
     mp.start(); 
    } catch (Exception e) { 
    } 
} 
+0

試試這個解決方案,讓我知道它是否在工作。 – InnocentKiller

+0

它現在嘗試,但音頻不運行時,我運行應用程序 – user3347841

+0

@ user3347841,你現在可以檢查它。 – InnocentKiller