2011-08-10 36 views
1

我試圖用fmod播放midi文件。但有一個錯誤說:插件需要的資源無法找到,(即DLS文​​件的MIDI播放)如何在android中使用midi文件使用fmod

我已經搜索了這樣的問題的結果,並提到了fmod.h文件。看來我需要一個名爲「gs_instrument.dls」的文件,但我無法在我的mac以及android模擬器文件系統中找到它。我也在網上搜索資源,也沒有結果。

那麼我應該怎麼做,如果我想在android中使用fmod播放MIDI文件。

希望你能幫助我!

謝謝!

回答

3

我不知道fmod,但Android可以立即播放MIDI文件。以下是適用於我的簡化版本:

MediaPlayer mediaPlayer = new MediaPlayer(); 
File f = [... my MIDI file ...]; 
FileInputStream fis = new FileInputStream(f); 
FileDescriptor fd = fis.getFD(); 
mediaPlayer.setDataSource(fd); 
mediaPlayer.prepare(); 
mediaPlayer.start(); 
0

您可以像這樣使用。您可以撥打以下方法來播放MIDI文件。

public void myRingCtone() 
     { 
      Uri path = Uri.parse("android.resource://com.PackageName/raw/MIDI_RingToneName"); 
      RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), 
                  RingtoneManager.TYPE_RINGTONE, path); 
      Log .i("TESTT", "Ringtone Set to Resource: "+ path.toString()); 
      RingtoneManager.getRingtone(getApplicationContext(), path).play(); 
     } 
1

您指定與傳遞到系統:: createSound的FMOD_CREATESOUNDEXINFO結構的dlsname成員的DLS文件的位置。

您必須自己提供實際的文件並將其放在SD卡上,以便您可以傳遞它的位置。在Windows上,默認的DLS文件位於「C:\ Windows \ System32 \ drivers \ gm.dls」或「C:\ Windows \ System32 \ drivers \ etc \ gm.dls」中。或者在Mac上,它位於「/System/Library/Components/CoreAudio.component/Contents/Resources/gs_instruments.dls」。這就是說我不能說在Android項目中使用這些文件的合法性,您可能需要從其他地方獲取自己的「免費」dls文件。