2011-08-10 5 views
1

fmod를 사용하여 midi 파일을 재생하려고합니다. 하지만 플러그인에 필요한 리소스 (예 : MIDI 재생을위한 DLS 파일)를 찾을 수 없다는 오류가 있습니다.android use fmod에서 midi 파일을 재생하는 방법

나는 이와 같은 문제에 대한 결과를 검색하고 fmod.h 파일을 참조했습니다. 그것은 "gs_instrument.dls"라는 파일이 필요하지만 내 Mac뿐만 아니라 안드로이드 시뮬레이터 파일 시스템에서 찾을 수없는 것 같습니다. 나는 또한 웹에서 자원을 검색했지만 아무런 결과도 얻지 못했다.

그렇다면 fmod를 사용하여 Android에서 midi 파일을 재생하려면 어떻게해야합니까?

희망을 보내주세요.

감사합니다.

답변

3

fmod에 대해 모르겠지만 안드로이드는 즉시 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

다음과 같이 사용할 수 있습니다. 미디 파일을 재생할 다음 방법을 호출 할 수 있습니다.

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 파일의 위치를 ​​지정합니다.

실제 파일을 직접 제공하고 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"에 있습니다. 이것은 안드로이드 프로젝트에서 이러한 파일을 사용하는 합법성에 대해 말할 수 없다고 말하면서, 다른 곳에서 직접 "무료"dls 파일을 가져와야 할 수도 있습니다.

관련 문제