Невозможно воспроизвести звук с пробелом в (NSURL *) sound_url - PullRequest
0 голосов
/ 29 мая 2011

Я хочу воспроизвести такой звук:

#define url(x) [NSURL URLWithString:x]
....

AVAudioPlayer *myFatBeat;
myFatBeat = [[AVAudioPlayer alloc] initWithContentsOfURL:url(@"/Library/Ringtones/Bell% Tower.m4r") error:nil];
[myFatBeat setNumberOfLoops:-1];  
[myFatBeat play];

но это не удалось. Я думаю, что это происходит из-за пробела между Bell и Tower, так как он работает, если имя звука - Àlarm. Затем я попытался избежать имени звука, например, Bell\ Tower, но при компиляции получаю error: unknown escape sequence: '\040'.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 29 мая 2011

Сначала закодируйте ваш URL:

#define url(x) [NSURL URLWithString:[x stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]
0 голосов
/ 29 мая 2011

Я забыл, если это так, как вы делаете в NSUrl, но вы можете попробовать %20 вместо пробела.

myFatBeat = [[AVAudioPlayer alloc]     
initWithContentsOfURL:url(@"/Library/Ringtones/Bell%20Tower.m4r") error:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...