iPhone에서 리소스 경로를 얻어야합니다. CFURLCreateFromFileSystemRepresentation에 관해서는,이 문제를 어떻게 해결 해야할지 모르겠습니다. 이 오류가 발생하는 이유는 무엇입니까? 모든 솔루션이나 해결 방법을 높이 평가 될 것입니다. 미리 감사드립니다.iPhone에서 리소스에 대한 파일 시스템 경로를 얻으려면 어떻게해야합니까?
iPhone에서 AudioQueue를 사용하여 오디오를 재생하기 위해 다음 예제를 살펴 보았습니다. SpeakHere, AudioQueueTools (SimpleSDK 디렉토리에서) 및 AudioQueueTest. 나는 퍼즐을 맞추려고 노력했다. 바로 지금, 나는 이것에 붙어있다. 위의 sndFile에서 예외가 발생하여 프로그램이 충돌했습니다.
내 iPhone 게임에서 모든 사운드를 재생하기 위해 AVAudioPlayer를 사용하고 있습니다. 실제 iPhone 기기에서는 사운드가 재생 될 때 매우 느려지므로 AudioQueue를 사용해야한다고 결정했습니다. 이것이 당신의 예외를 제거 할 경우
- (id) initWithFile: (NSString*) argv{
if (self = [super init]){
NSString *soundFilePath = [[NSBundle mainBundle]
pathForResource:argv
ofType:@"mp3"];
int len = [soundFilePath length];
char* fpath = new char[len];
//this is for changing NSString into char* to match
//CFURLCreateFromFileSystemRepresentation function's requirement.
for (int i = 0; i < [soundFilePath length]; i++){
fpath[i] = [soundFilePath characterAtIndex:i];
}
CFURLRef sndFile = CFURLCreateFromFileSystemRepresentation
(NULL, (const UInt8 *)fpath, strlen(fpath), false);
if (!sndFile) {
NSLog(@"sndFile error");
XThrowIfError (!sndFile, "can't parse file path");
}
}
무엇을 성취하려고합니다. 이 실제 문제를 어떻게 해결할 수있는 것과는 대조적으로 프레임 워크 방법을 사용하는 방법을 묻는 질문을 좋아하지 않습니다. 중복 된 줄임표는 무엇입니까? –
고정 질문 조금 –
좋습니다. 죄송합니다. 나는 약간 피곤했다. 어쨌든, 나는 AudioQueue에 대한 모든 예제를 따르려고 노력하고 있으며 또한 이것을 위해 Apple 문서를 읽었습니다. 필자는 경험이별로 없기 때문에 CFURLRef를 올바르게 처리하는 방법을 알지 못합니다. 모든 예제와 문서에서 알 수 있듯이이 CFURLRef를 AudioFileOpenURL 메서드의 인수로 사용할 수 있도록 CFURLRef를 가져 오기 위해 CFURLCreateFromFileSystemRepresentation을 사용해야합니다. 그러나 나는 "CAXException '인스턴스를 던진 후에 호출을 종료합니다. 나는이 오류를 다루는 방법을 모른다. – Karl