1
我從下面的代碼調用playSoundFromBundle播放聲音(aif文件)。我有一個聲音,只需點擊一下,然後是一個衰落的聲音。兩個聲音都在同一個文件中。有時我會得到兩次點擊然後淡出。含義,點擊,點擊...淡入淡出。單擊不是應該玩的。我猜聲音開始(點擊聲音),被中斷,然後重新啓動(完整聲音...點擊/淡入淡出),因爲可能正在進行其他處理。它發生時似乎是隨機的。我把聲音放在自己的線上,試圖避免雙擊。還有什麼我可以做,以確保聲音播放正確?開始播放時聲音隨機中斷
- (void) playSoundFromBundleThreaded:(NSArray*)arr{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *fileName = (NSString*)[arr objectAtIndex:0];
NSString *fileExt = (NSString*)[arr objectAtIndex:1];
NSError *err;
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: fileName ofType: fileExt inDirectory:@"/"]] error: &err];
self.audioPlayer = newPlayer;
self.audioPlayer.numberOfLoops = 0;
self.audioPlayer.volume = .5;
if (self.audioPlayer == nil)
{
NSLog(@"Problem initializing Sound - %@", [err description]);
}
else
{
[self.audioPlayer play];
}
[newPlayer release];
[pool release];
}
- (void) playSoundFromBundle:(NSString*)fileName fileExtension:(NSString*)fileExt{
NSArray *arr = [NSArray arrayWithObjects:fileName, fileExt, nil];
[NSThread detachNewThreadSelector: @selector(playSoundFromBundleThreaded:) toTarget:self withObject:arr];
}