无法在(NSURL *)sound_url中播放带空格的声音

时间:2011-05-29 02:05:43

标签: iphone objective-c tweak

我想播放这样的声音:

#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];

但它失败了。我认为这是由于BellTower之间的空格,因为如果声音名称是Àlarm,它就会起作用。然后,我试图像Bell\ Tower那样转义声音名称,但在编译时我得到error: unknown escape sequence: '\040'

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

首先对您的网址进行编码:

#define url(x) [NSURL URLWithString:[x stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]

答案 1 :(得分:0)

我忘记了NSUrl中你是如何做到这一点的,但你可以试试%20而不是空格。

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