开始播放时声音随机中断
Posted
技术标签:
【中文标题】开始播放时声音随机中断【英文标题】:Sounds randomly interrupted when starting to play 【发布时间】:2010-01-13 17:05:04 【问题描述】:我从下面的代码中调用 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];
【问题讨论】:
【参考方案1】:不知道这是否可行,但请查看音频会话的内容。它旨在管理诸如播放其他声音(例如通过音乐播放器)是否会中断您的应用程序的音频之类的事情。
【讨论】:
以上是关于开始播放时声音随机中断的主要内容,如果未能解决你的问题,请参考以下文章