如何在 iOS 应用程序中连续循环播放声音文件?
Posted
技术标签:
【中文标题】如何在 iOS 应用程序中连续循环播放声音文件?【英文标题】:How consecutively play sound files in a loop in the iOS application? 【发布时间】:2014-05-21 11:10:36 【问题描述】:iPhone 的应用程序,我想始终如一地再现多个音频文件(与显示图像并行)。我将名称放入音频文件和图像文件的数组中。但是,当我在启动应用程序后尝试循环播放图像和声音时,所有声音都会同时播放。我试图实现单独的启动(使用 dispatch_after),但是在循环中的 12 步之后发生了一些制动。 我认为有任何方法可以暂停循环。直到当前文件播放周期结束才进行下一步。但我不知道它是如何实现的。有人可以提供建议或示例代码如何解决吗? 附:我阅读了有关 audioPlayerDidFinishPlaying 的信息,但无法弄清楚如何在实践中使用此方法。
for (i = 0; i <= 21; i++)
double delayInSeconds = i * 4.5;
DZpopTimeStep *tempVar = [dataPopTime objectAtIndex: i];
tempVar.popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(tempVar.popTime, dispatch_get_main_queue(), ^(void)
//.....image
UIGraphicsBeginImageContext(self.imageFromFile.frame.size);
[[UIImage imageNamed:tempVar.nameColorFile] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIColor *fonMain = [UIColor colorWithPatternImage:image];
imageFromFile.backgroundColor = fonMain;
// ... play of sound file
[self playSoundFile:(NSString *)tempVar.nameSoundFile];
);
【问题讨论】:
【参考方案1】:查看 AVQueuePlayer,它似乎就是你要找的东西,这里是它的链接: https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVQueuePlayer_Class/Reference/Reference.html
【讨论】:
以上是关于如何在 iOS 应用程序中连续循环播放声音文件?的主要内容,如果未能解决你的问题,请参考以下文章