2009-08-04 8 views
1

응용 프로그램을 작성 중이며 AVAudioRecorder 및 AVAudioPlayer 클래스를 사용하여 사운드를 녹음하고 재생하는 부분이 있습니다. 나는 아래와 같이 사운드 파일을 설정했다. 내가 그것을 work.Does의 사람이 문제가 될 수 있는지 어떤 생각이없는 장치에 응용 프로그램을로드 할 때 장치에서 사운드가 작동하지 않습니다.

NSString *resourcePath = [[NSBundle mainBundle] resourcePath]; 
resourcePath = [resourcePath stringByAppendingString:@"/sound.caf"];  
self.soundFileURL = [NSURL fileURLWithPath:resourcePath]; 

내가 시뮬레이터에서 응용 프로그램을 실행

, 그것은 fine.However 작동합니다.


안녕 coob. 나는 당신의 대답을 시도했다. 그러나 장치에 소리가 없다. 그것은 시뮬레이터에서 작동한다. 내가 배포 장치에서 테스트했을 때 충돌 보고서 "알 수없는 커널 [0] : 오류 : AMC 재설정 [치명적이지 않은 오류] : BSU를 잠글 수 없음"

답변

1

resourcePath에 쓸 수 있다고 생각하지 않습니다. 그 장치는 보호 받았다. 앱의 문서 디렉토리를 찾아 어딘가 쓰기 :

NSArray *filePaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *recordingDirectory = [filePaths objectAtIndex: 0]; 
NSString *resourcePath = [recordingDirectory stringByAppendingString:@"/sound.caf"]; 
self.soundFileURL = [NSURL fileURLWithPath:resourcePath]; 
0

는 당신이 내가 아이폰에 제대로 된 사운드를하려고 처음했던 같은 일을했다고 할 수 있습니까? 소리가 나지 않았습니까?

또 다른 가능성은 :

나는 번들 내에서 파일 이름은 대소 문자를 구분 시뮬레이터의 장치가 아닌 것을 발견했다. (대/소문자 구분 - 각각에 대해 정확히 무엇을 실험했는지 실험하지 못했습니다.) 그래서 파일의 경우가 틀리면 시뮬레이터에서 단순히 미끄러지지만 파일 대신 nil을 반환 할 수 있습니다 장치에서 실행됩니다.

나는 이상하게 들린다는 것을 알고 있지만, 나는 단지 내 자신의 프로젝트에서 그것을 확인했다. 제대로로드 된 파일을 가져 와서 파일 이름의 대/소문자를 변경하고 장치에서 어떻게 작동하는지보십시오. - 설명 - 더 이상 번들 내의 파일 이름과 일치하지 않도록 파일을 검색하는 이름의 대/소문자를 변경하십시오.

귀하의 문제는 아니지만 그럼에도 불구하고 조심해야 할 것이 있습니다.

+0

위의 해결책을 시도했습니다. 그런 다음 똑같은 일이 시뮬레이터에서 발생하고 장치에서 소리가 나지 않습니다. 다른 대안들? – diana

+0

그래서 파일 이름의 대소 문자 (대소 문자)를 확인하고, 번들에 들어있는 내용과 정확하게 일치하는지 확인하십시오. (나는 대답이 '예'라고 가정하지만, 나는 단지 확신하고 싶다.) – Amagrammer

0

방금 ​​일부 코드를 검토했습니다. 당신의 의도에 맞는, 나는 함께 올 :

NSString *soundName = @"sound"; // without extension -- mimicing your naming 
NSString *resourcePath = [[NSBundle mainBundle] pathForResource: soundName ofType: @"caf"]] 
self.soundFileURL = [NSURL fileURLWithPath:resourcePath]; 

그게 작동합니까?

0

기기가 자동 모드가 아닌지 확인하십시오. 짧은 소리는 자동 모드에서는 작동하지 않습니다.

0

나는 Audiosession을 추가 한 것과 같은 문제가 있었지만 정상적으로 작동합니다.

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 

희망.

관련 문제