ios删除avaudioplayer循环延迟

Posted

技术标签:

【中文标题】ios删除avaudioplayer循环延迟【英文标题】:ios remove avaudioplayer loop delay 【发布时间】:2015-10-19 17:02:58 【问题描述】:

我有一个加载声音文件并循环播放的 avaudioplayer。问题是每次文件循环时,都会出现暂停/延迟,这会使音乐听起来很糟糕。

我发现这个问题有类似的问题,但适用于 2 名玩家。我有一个播放器在每个循环中暂停 1 秒:AVAudioPlayer eliminating one second pause between sound files

这是我的音频播放器设置的样子:

@interface HomeViewController ()

@property (strong, nonatomic) DataController *dataController;

@end

@implementation HomeViewController

- (void)viewDidLoad 

    [super viewDidLoad];

    self.dataController = [DataController sharedInstance];

        [self createAndStartAudioPlayer];




- (void) viewWillAppear:(BOOL)animated

        [self.dataController.player play];


- (void) createAndStartAudioPlayer 

    NSTimeInterval shortStartDelay = 0.01;            // seconds
    NSTimeInterval now = self.dataController.player.deviceCurrentTime;

    [self.dataController.player       playAtTime: now + shortStartDelay];

        NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"jingle-loop" ofType:@"mp3"];
        NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
        self.dataController.player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL fileTypeHint:AVFileTypeMPEGLayer3 error:nil];
        self.dataController.player.numberOfLoops = -1; //infinite

    [self.dataController.player prepareToPlay];



如何停止这 1 秒的暂停并像连续歌曲一样播放循环?

【问题讨论】:

第一次播放文件时,是否也有延迟? 如果第一次播放文件有延迟,请尝试使用像audacity这样的音频编辑器编辑音频文件,并删除实际音频前后的空白。有时会有淡入或添加到音频文件的淡出样式。看看它是否有效。 【参考方案1】:

先生。 cmets中的T实际上是正确的。解决方案是修复车库带自动添加的空白。

【讨论】:

以上是关于ios删除avaudioplayer循环延迟的主要内容,如果未能解决你的问题,请参考以下文章

AVA中循环删除list中元素

AVAudioPlayer 是不是能够在没有可听间隙的情况下循环播放大型音频文件?

使用 AVAudioPlayer 延迟播放声音

AVAudioPlayer 在 Swift 4.2 中产生延迟

如何播放与 AVAudioPlayer 重叠的相同声音?

静音按钮不会静音 AVAudioPlayer