performrequest 취소하는 동안, 내가 지금처럼 사용자 작업 시간 (초)의 일정 금액 후 AVAudioPlayer를 사용하여 음성 해설을 재생 :iOS 용 : 오류의 iOS SpriteKit 응용 프로그램에서
[self.vOSoundManager performSelector:@selector(playVoiceOverWithName:) withObject:@"Voiceover_waarhondenbrokken3" afterDelay:8.0];
[self.vOSoundManager setRequestBeingPerformed:TRUE];
사용자가 다른 작업을 수행, 사운드가 재생되지 않아야합니다. 그래서 같이 이렇게 :
if(self.vOSoundManager.requestBeingPerformed){
[NSObject cancelPreviousPerformRequestsWithTarget:self.vOSoundManager];
[self.vOSoundManager stopCurrentSound];
}
VoiceOverSoundManager의 stopCurrentSound 방법 :
cancelPreviousPerformRequestsWithTarget 메서드를 호출 할 때, 나는 다음과 같은 오류 얻을- (void)stopCurrentSound{
self.playing = FALSE;
[self.voiceOverPlayer stop];
self.voiceOverPlayer = nil;
}
:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[VoiceOverSoundManager name]: unrecognized selector sent to instance 0x155a9590'
나는 아무 생각을 왜. 누구든지 해결책이 있습니까?
self.voiceOverPlayer = nil;
시도를 제거 : 당신이 당신의 게임에서 모든 사운드를 재생하는 플레이어의 한 인스턴스를 사용하는 경우
AVAudioPlayer의 다른 인스턴스가 코드에 있거나 self.voiceOverPlayer가 모든 사운드를 재생하는 데 사용하는 유일한 플레이어입니까? – Whirlwind
AVOudioPlayer를 사용하는 VoiceOverSoundManager의 다른 인스턴스를 사용하지만이 문제를 해결하기 위해 구현했습니다. 그래서 구현되기 전에 문제가있었습니다. – Cas