AudioQueueStart отправка сообщения, чтобы убить mediaserverd
У меня есть приложение для фортепиано. Работает нормально, с небольшой ошибкой. Если я играю несколько клавиш одновременно очень быстро, звуки исчезают на пару секунд, и я получаю следующее сообщение в консоли
AudioQueueStart отправка сообщения, чтобы убить mediaserverd
Вот соответствующий код:
-(IBAction)playNoteFromKeyTouch:(id) sender{
[NSThread detachNewThreadSelector:@selector(playNote:) toTarget:self withObject:[NSString stringWithFormat:@"Piano.mf.%@",[sender currentTitle]]];
}
-(void)playNote:(NSString *) note{
NSError *err;
NSString *path = [[NSBundle mainBundle] pathForResource:note ofType:@"aiff"];
AVAudioPlayer *p = [[AVAudioPlayer alloc ] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&err];
p.delegate = self;
if (err) {
NSLog(@"%@", err);
}else{
[p prepareToPlay];
[p play];
}
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[player release];
}
Я проверил с инструментами, и у меня нет утечки памяти. Если бы у кого-то была идея избежать этой ошибки, это было бы оценено.
3 ответа
Я "решил" проблему, используя SoundBankPlayer вместо AVAudioPlayer. Информация о SoundBanker.
Я страдаю от аналогичной проблемы.
Я потратил целую вечность, пытаясь решить проблему, и я думаю, что моя конкретная проблема имеет место, когда:
- Я нахожусь в АудиоКатегории, которая не позволяет воспроизводить звук, когда выключен звук.
- Я начинаю воспроизводить звук (на самом деле я не делаю этого в приложении, но именно так я могу надежно воспроизводить).
- Со звуком, который все еще воспроизводится, я переключаюсь на другую категорию AudioCategory, которая не позволяет воспроизводить звук при включенном выключении звука.
С этого момента я получаю "отправку сообщения об уничтожении медиа-сервера" из того, что выглядит как различные точки в вызовах в AudioSession API. Приложение зависает, устройство зависает, и я изо всех сил пытаюсь вернуть устройство в нормальное рабочее состояние.
Согласно этому сообщению это выключатель звука устройства.
Оказывается, отключение iPad через физический переключатель устройства вызывало проблемы с моим приложением. Пока кнопка не включена, проблема не возникает.
Sheesh. Как программно переопределить?