Я успешно получил IOS, чтобы играть .mid (миди) файл с образцом Soundfont, используя следующий код:Воспроизведение миди файлов с MusicPlayer & Music 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);
}
Однако проблема возникает, когда я тогда попробуйте сыграть второй файл, когда первый все еще играет.
Я пробовал много вариантов. Во-первых, вышеуказанный код будет воспроизводить оба трека одновременно. Или, я попробовал:
DisposeMusicPlayer(musicPlayer);
DisposeMusicSequence(musicSequence);
Перед NewMusicPlayer(&musicPlayer)
, но это производит странную версию мелодии с только спорадическими нотами играется.
Мне очень хотелось бы просто называть этот метод и следующий трек для воспроизведения.
я последовал фрагмент кода и учебник здесь http://www.deluge.co/?q=comment/477#comment-477 , но нет выхода там. не могли бы вы помочь мне воспроизвести средний файл – makboney