1

저는 작은 게임을하고 있는데 배경 음악에 문제가 있습니다. 루프 음악을 재생하려면 AVAudioPlayer을 사용합니다. 그것은 다음과 같이 있어요 : 나는 Supproting Files 파일 background.ogg, background.mp3, background.wav에 있는데 아무도 연주되지 않습니다objective-c에서 AVAudioPlayer를 올바르게 처리하는 방법

NSString *path = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"ogg"]; 
NSError *error; 

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] error:&error]; 

NSLog(@"%@", [error description]); 

[player setNumberOfLoops:-1]; 
player.delegate = self; 
[player play]; 

. 그게 뭐가 잘못 되었 니? 내가 설명 오류를 인쇄 할 NSLog를 사용할 때

는 그리고 난있어 :

Error Domain=NSOSStatusErrorDomain Code=1954115647 "The operation couldn’t be completed. (OSStatus error 1954115647.)" 

이 도와주세요.

+1

이것은'kAudioFileUnsupportedFileTypeError'에 대한 코드입니다. 그러나 iOS는 확실히 MP3 및 WAV 파일을 재생할 수 있으며 대부분 OGG 파일을 처리 할 수 ​​없습니다. 나는 파일 경로 자체가 유효한 URL이 아니기 때문에'URLWithString :'대신'+ [NSURL fileURLWithPath :]'를 사용해야한다고 생각한다. –

+0

@ H2CO3, .mp3와'+ [NSURL fileURLWithPath :]'를 사용했지만 여전히 소리가 나지 않으면 error = (null)입니다. –

답변

-1

너무 쉬웠습니다. 한 가지 더 있습니다. 예 : NSTimer을 사용하는 경우 ivalidate해야합니다. AVAudioPlayer을 사용할 때는 stop해야합니다.

[player stop]; 
+0

위 코드를 어디에 넣었습니까? – ngb

+0

음악을 중단하려는 장소에서. –

0

일부 시간, 오디오 파일의 품질은 샘플링 오디오 샘플링 속도가 24kHz보다 낮은 여부까지 확인 rate.Please 같은 필요가 일치하지 않다고해서. 일부 오디오를 테스트 한 결과, 오디오 샘플링 속도가 44kHz보다 높으면 작동하지만 44kHz보다 낮 으면 &이 22kHz보다 높으면 AudioToolbox가 AVAudioPlayer가 작동하는 동안 소리를 먼저 재생할 수 없음을 발견했습니다. 몇 번. 그리고 22kHz보다 낮 으면이 오디오 파일을 재생할 수 없습니다. ("m4a", "mp3", "wav"로 테스트 한 오디오 파일 형식)

그런데 원하는 경우 낮은 샘플링 속도의 오디오를 44kHz "m4a"파일로 변환하려면 iTunes를 사용하십시오. 작동하지 않습니다. 이것에 시간을 낭비하지 마십시오.

관련 문제