Я работаю над интерактивной детской книгой для iPad, в которой есть опция «читай мне».
Для каждой страницы (которая имеет индекс) есть аудиоклип, который производит функцию «читай мне». Функция работает хорошо, за исключением того факта, что когда я переворачиваю страницу, звук предыдущих страниц все еще воспроизводится, даже когда начинается новое аудио, вот мой пример:
- (void) didTurnToPageAtIndex:(NSUInteger)index
{
if ([delegate respondsToSelector:@selector(leavesView:didTurnToPageAtIndex:)])
[delegate leavesView:self didTurnToPageAtIndex:index];
if([[NSUserDefaults standardUserDefaults] boolForKey:@"kReadToMe"] == YES)
{
NSString* filename = [voices objectAtIndex:index];
NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:@"m4v"];
NSLog(@"File: %@, Index: %i",path,index);
//Create new audio for next page
AVAudioPlayer * newAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
rtmAudio = newAudio; // automatically retain audio and dealloc old file if new file is loaded
//[newAudio release];
[rtmAudio play];
}
}
Скажем, к примеру, я перехожу на страницу 3 до того, как перестанет воспроизводиться звук на странице 2, оба клипа воспроизводятся друг над другом, что раздражает детей, я знаю, что это так.
Я пытался поместить [rtmAudio stop] перед тем, как выделить новый файл, но, похоже, это не работает. Мне нужен способ убить преобладающий аудиоклип перед началом нового клипа.