我是一个新手,我可能做了很多错事,因此,我真的需要你的专业知识和帮助!
我正在创建一个使用AVFoundation Framework的音乐应用程序.当我在我的Macbook和iOS设备上测试时,它在开始时实际上运行良好.但是在我按下50-100次不同的音频播放按钮后,它会随机停止工作.该应用程序不会崩溃,但它不会播放任何声音.我真的不明白为什么,请帮助我.
更新(2013年6月7日):在这里,我现在弄清楚问题是什么,但我不明白...它在调试器中说这个:shm_open失败:"AppleAudioQueue.39.189049"(25)flags = 0x2 errno = 24请尽可能帮助:o!
这是我的代码:
Run Code Online (Sandbox Code Playgroud)[array1 retain];[array1 retain];[array1 retain];
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:[NSString stringWithFormat:@"%@", [[Scale objectAtIndex:array1.retainCount]description]] ofType:@"mp3" inDirectory:@"Piano"];
NSURL *url = [NSURL fileURLWithPath: path];
player = [[AVAudioPlayer alloc]
initWithContentsOfURL:url error:nil];
[player setNumberOfLoops:0];
[player play];
Run Code Online (Sandbox Code Playgroud)
这个问题的一个潜在原因是因为我正在使用[array retain/release]
和使用数组retainCount
来引用许多不同的对象.这会导致内存泄漏还是类似的东西?
你好bbum,谢谢你的帮助.供您参考,这是我的愚蠢代码的一部分..我知道它有点乱,如果您需要我的解释或更多细节,请告诉我:
- (IBAction)P1C:(id)sender{
KeyCountA1 = [NSMutableArray arrayWithObjects:@"1",@"3",@"5",@"8",@"10",@"12",@"15",@"17",@"19",@"22",@"24",@"26",@"29",@"31",@"33",@"36",@"38",@"40",@"43",@"45",@"47",@"50",@"52",nil];
KeyCountA2 = [NSMutableArray arrayWithObjects:@"0",@"2",@"4",@"6",@"9",@"11",@"13",@"16",@"18",@"20",@"23",@"25",@"27",@"30",@"32",@"34",@"37",@"39",@"41",@"44",@"46",@"48",@"51",nil];
KeyCountA3 = [NSMutableArray arrayWithObjects:@"0",@"3",@"5",@"7",@"10",@"12",@"14",@"17",@"19",@"21",@"24",@"26",@"28",@"31",@"33",@"35",@"38",@"40",@"42",@"45",@"47",@"49",@"52",nil];
KeyCountA4 = [NSMutableArray arrayWithObjects:@"1",@"4",@"6",@"8",@"11",@"13",@"15",@"18",@"20",@"22",@"25",@"27",@"29",@"32",@"34",@"36",@"39",@"41",@"43",@"46",@"48",@"50",nil];
KeyCountA5 = [NSMutableArray arrayWithObjects:@"2",@"5",@"7",@"9",@"12",@"14",@"16",@"19",@"21",@"23",@"26",@"28",@"30",@"33",@"35",@"37",@"40",@"42",@"44",@"47",@"49",@"51",nil];
KeyCountA6 = [NSMutableArray arrayWithObjects:@"1",@"3",@"6",@"8",@"10",@"13",@"15",@"17",@"20",@"22",@"24",@"27",@"29",@"31",@"34",@"36",@"38",@"41",@"43",@"45",@"48",@"50",@"52",nil];
KeyCountA7 = …
Run Code Online (Sandbox Code Playgroud)