Ich habe eine .mid (Midi-Datei) mit einer Soundfont-Probe mit dem folgenden Code zu spielen erfolgreich iOS bekommen:MIDI-Dateien mit Musicplayer & Music Sequence spielt
-(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);
}
jedoch das Problem kommt, wenn ich dann versuchen Sie eine zweite Datei abzuspielen, wenn die erste noch spielt.
Ich habe viele Variationen ausprobiert. Erstens werden mit dem obigen Code beide Spuren gleichzeitig abgespielt. Oder ich habe versucht:
DisposeMusicPlayer(musicPlayer);
DisposeMusicSequence(musicSequence);
Vor den NewMusicPlayer(&musicPlayer)
, aber das erzeugt eine seltsame Version der Melodie mit nur sporadischen gespielten Noten.
Ich würde gerne diese Methode anrufen, und den nächsten Titel gespielt werden.
i gefolgt Ihr Code-Snippet und das Tutorial hier http://www.deluge.co/?q=comment/477#comment-477 aber es gibt keinen Ausgang. Könnten Sie mir bitte helfen, eine Mid-Datei zu spielen? – makboney