Mam powodzeniem zdobyć iOS odgrywają .mid (MIDI) plik z próbką soundfont stosując następujący kod:Odtwarzanie plików midi z MusicPlayer & Muzyka Sequence
-(void) playMusic:(NSString*) name
{
NSString *presetURLPath = [[NSBundle mainBundle] pathForResource:@"GortsMiniPianoJ1" ofType:@"SF2"];
NSURL * presetURL = [NSURL fileURLWithPath:presetURLPath];
[self loadFromDLSOrSoundFont: (NSURL *)presetURL withPatch: (int)3];
NSString *midiFilePath = [[NSBundle mainBundle] pathForResource:name ofType:@"mid"];
NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath];
NewMusicPlayer(&musicPlayer);
if (NewMusicSequence(&musicSequence) != noErr)
{
[NSException raise:@"play" format:@"Can't create MusicSequence"];
}
if(MusicSequenceFileLoad(musicSequence, (CFURLRef)midiFileURL, 0, 0 != noErr))
{
[NSException raise:@"play" format:@"Can't load MusicSequence"];
}
MusicPlayerSetSequence(musicPlayer, musicSequence);
MusicSequenceSetAUGraph(musicSequence, _processingGraph);
MusicPlayerPreroll(musicPlayer);
MusicPlayerStart(musicPlayer);
}
Jednak problem pojawia się, gdy ja potem spróbuj odtworzyć drugi plik, gdy pierwszy będzie nadal odtwarzany.
Próbowałem wielu odmian. Po pierwsze, powyższy kod będzie odtwarzał obie ścieżki jednocześnie. Albo, próbowałem:
DisposeMusicPlayer(musicPlayer);
DisposeMusicSequence(musicSequence);
Przed NewMusicPlayer(&musicPlayer)
, ale produkuje dziwne wersję melodii z tylko sporadyczne notatki są odtwarzane.
Chciałbym po prostu wywołać tę metodę i następny utwór do odtworzenia.
i następnie swój fragment kodu i tutorial tutaj http://www.deluge.co/?q=comment/477#comment-477 ale nie ma wyjścia. czy mógłbyś mi pomóc w odtwarzaniu pliku środkowego? – makboney