Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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 AVAudioPlayer仅调用AudioPlayerIDfinishPlaying两次_Iphone_Objective C_Avaudioplayer - Fatal编程技术网

Iphone AVAudioPlayer仅调用AudioPlayerIDfinishPlaying两次

Iphone AVAudioPlayer仅调用AudioPlayerIDfinishPlaying两次,iphone,objective-c,avaudioplayer,Iphone,Objective C,Avaudioplayer,我正在尝试使用AVAudioPlayer创建一种音频播放列表。因此,我使用了以下代码: .h 这适用于两首歌曲,但在此之后没有任何音频。知道为什么吗 谢谢, Denis在这一行中,您正在启动音频播放器: audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 然后在这一行中再次初始化它(不必要的重复,可能还有额外的保留): 然后下次循环出现时,即使您使用该行释放它 [player release];

我正在尝试使用AVAudioPlayer创建一种音频播放列表。因此,我使用了以下代码:

.h

这适用于两首歌曲,但在此之后没有任何音频。知道为什么吗

谢谢,
Denis

在这一行中,您正在启动音频播放器:

audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
然后在这一行中再次初始化它(不必要的重复,可能还有额外的保留):

然后下次循环出现时,即使您使用该行释放它

[player release];

…存在一个问题,因为它仍在内存中,占用了硬件编解码器或浪费了资源。尝试删除第二个
initWithContents…
行,因为它是不必要的。

1.只需维护一个数组。
2.创建audioPlayer实例后-添加到阵列并调用play并释放audioPlayer实例(因为添加到阵列后它将被保留)。
3.在AudioPlayerDifinishPlaying中,从该阵列中卸下audioPlayer


因此,您可以一次播放多个文件

这就是您感到疲劳的原因。干杯
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
 [audioPlayer initWithContentsOfURL:url error:nil];
[player release];