Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 多个AVAudioPlayers:我只能初始化第一个播放_Iphone_Objective C - Fatal编程技术网

Iphone 多个AVAudioPlayers:我只能初始化第一个播放

Iphone 多个AVAudioPlayers:我只能初始化第一个播放,iphone,objective-c,Iphone,Objective C,我有很多声音片段,从sound1.mp3到soundN.mp3。我想在触摸屏上随机播放它们,所以我为每个剪辑设置了一个AVAudioPlayer,这些剪辑都存储在播放器中(AVAudioPlayer**)。初始化所有内容后,我可以播放的唯一声音是sound1.mp3。我做错了什么 谢谢你的帮助,初始化代码如下 players = (AVAudioPlayer**) malloc ( sizeof (AVAudioPlayer*) * NUM_CLIPS); NSString* path; NSS

我有很多声音片段,从sound1.mp3到soundN.mp3。我想在触摸屏上随机播放它们,所以我为每个剪辑设置了一个AVAudioPlayer,这些剪辑都存储在播放器中(AVAudioPlayer**)。初始化所有内容后,我可以播放的唯一声音是sound1.mp3。我做错了什么

谢谢你的帮助,初始化代码如下

players = (AVAudioPlayer**) malloc ( sizeof (AVAudioPlayer*) * NUM_CLIPS);
NSString* path;
NSString* name;
for(uint i = 0; i < NUM_CLIPS; i++){
    name = [NSString stringWithFormat: @"sound%d", i+1];
    path = [[NSBundle mainBundle] pathForResource:name ofType:@"mp3"];
    players[i] = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    [players[i] setMeteringEnabled:YES];
    [players[i] prepareToPlay];
}
players=(AVAudioPlayer**)malloc(sizeof(AVAudioPlayer*)*NUM_剪辑);
NSString*路径;
NSString*名称;
对于(uint i=0;i
没关系,似乎prepareToPlay的工作方式有问题

原因是mp3/aac文件是硬件解码的,只能一次打开才能解码。

詹姆斯·布鲁克斯(jamesbrooks dot net)说,将*.mp3文件改为*.caf可以让他在AVAudioPlayer上播放多种声音。但是,我个人无法同时播放*.caf文件,但我可以同时播放*.aiff文件