「読み聞かせ」オプションを備えた iPad 用のインタラクティブな子供向けの本に取り組んでいます。
各ページ (インデックスがある) には、「read to me」機能を生成するオーディオ クリップがあります。この機能はうまく機能しますが、ページをめくると、新しいオーディオが開始されても、前のページのオーディオがまだ再生されるという事実を除いて、これが私の例です:
- (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];
}
}
たとえば、ページ 2 の音声の再生が停止する前にページ 3 に移動すると、両方のクリップが重ねて再生されます。
新しいファイルを割り当てる前に [rtmAudio stop] を配置しようとしましたが、うまくいかないようです。新しいクリップを開始する前に、前のオーディオ クリップを削除する方法が必要です。