1

fmod を使用して midi ファイルを再生しようとしています。しかし、次のようなエラーが表示されます:プラグインが必要とするリソースが見つかりません(つまり、MIDI 再生用の DLS ファイル)

このような問題の結果を検索し、fmod.h ファイルを参照しました。「gs_instrument.dls」という名前のファイルが必要なようですが、Mac と Android シミュレータ ファイルシステムで見つけることができません。Web のリソースも検索しましたが、結果もありません。

fmodを使用してAndroidでmidiファイルを再生したい場合はどうすればよいですか。

あなたが私を助けてくれることを願っています!

ありがとう!

4

3 に答える 3

4

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();
于 2011-08-10T12:46:16.980 に答える
1

System::createSound に渡される FMOD_CREATESOUNDEXINFO 構造体の dlsname メンバーを使用して、DLS ファイルの場所を指定します。

実際のファイルを自分で提供し、それを sdcard に入れて、その場所を渡すことができるようにする必要があります。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 ファイルを入手する必要があるかもしれません。

于 2011-08-10T23:55:10.577 に答える
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();
        }
于 2011-08-10T14:13:22.460 に答える