AVAudioPlayer
을보고 설정하고 다시 사용할 수 있습니다. 그러나 더 중요한 것은, 그것을 설정할 때 사운드를 미리 메모리에로드하는 "연주 준비"라고 말할 수 있습니다. 따라서 실제로 플레이어에게 재생할 것을 말하면 즉시 재생됩니다. 나는 편리 최근에 생성 뭔가에 대해이 방법을 쓴하고 AVAudioPlayer
객체 반환 어딘가에 앱에서
+(AVAudioPlayer *)playerForFile:(NSString *)fileName
{
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"caf"];
NSURL *url = [NSURL fileURLWithPath:filePath];
NSData *soundData = [NSData dataWithContentsOfURL:url];
NSError *error = nil;
AVAudioPlayer *player = [[[AVAudioPlayer alloc] initWithData:soundData error:&error] autorelease];
if (error)
NSLog(@"error creating player for %@: %@", fileName, [error localizedDescription]);
return (error ? nil : player);
}
당신 수도 설정과 같이 선수 개체 : 재생하려는
AVAudioPlayer *buzzSoundPlayer = [MyClass playerForFile:@"buzz"];
if (buzzSoundPlayer) {
[buzzsoundPlayer prepareToPlay];
}
소리 :
[buzzSoundPlayer setCurrentTime:0];
[buzzSoundPlayer play];
당신은 사운드 파일의 시작 부분, 즉 0으로 현재 시간을 설정해야합니다, 당신은 때 사운드가 완료 괞 찮아 때문에 그것을 재생할 때마다 ying, "현재 시간"이 끝에 있습니다. 따라서 후속 재생 요청은 재생되지 않습니다. 그래서 우리는 현재 시간을 처음으로 되돌립니다.
플레이어에 대해서도 delegate
을 설정할 수 있으며 사운드 재생이 완료되면 대리인 메서드를 통해 알림을받을 수 있습니다. 현재 시간을 0으로 재설정 할 수 있습니다.
Apple 설명서에서 AVAudioPlayer
및 AVFoundation
에 관한 모든 내용을 읽을 수 있습니다.
응용 프로그램 시작시 확실히로드하고 싶습니다. 귀하의 정보를 가져 주셔서 감사합니다. 그러나, 나의 무지를 용서하십시오, 그러나 나는 당신의 대답을 이해하지 못합니다. SELECTOR는 무엇입니까? – Rick