На iPhone мне нужно получить путь к ресурсу. Хорошо, сделал это, но когда дело доходит до CFURLCreateFromFileSystemRepresentation, я просто не знаю, как это решить. Почему возникает эта ошибка? Любое решение или обходной путь будут высоко оценены. Заранее спасибо.
Я рассмотрел следующие примеры воспроизведения звука с помощью AudioQueue на iPhone: SpeakHere, AudioQueueTools (из каталога SimpleSDK) и AudioQueueTest. Я пробовал делать то и это, пытаясь сложить пазлы. Прямо сейчас я застрял в этом. Программа аварийно завершилась из-за исключения, выброшенного из sndFile выше.
Я использую AVAudioPlayer для воспроизведения каждого звука в играх для iPhone. На реальном устройстве 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");
}
}