如何在 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 应用程序中连续循环播放声音文件?的主要内容,如果未能解决你的问题,请参考以下文章

SoundPlayer 并播放无缝连续的声音

iOS 5 检测重复/连续摇晃

哪些音频类型可以在 iOS 中无间隙地循环播放?

如何在Android中无间隙地循环播放声音?

如何在不更改声音指示器的情况下在 iOS 中以最大音量播放声音文件

如何在 iOS 上播放声音?