gpt4 book ai didi

iphone - AVAudioPlayer 声音文件混合时播放不同步 - iPhone

转载 作者:行者123 更新时间:2023-12-03 19:36:51 26 4
gpt4 key购买 nike

我正在尝试使用 AVAudioPlayer 实例播放 6 个独立的 .mp3 声音文件。声音同时播放,但似乎播放不同步或以略有不同的速度。有谁知道为什么会这样?

这是我初始化声音的方法:

 NSURL *musicurl = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource: @"SoundLoop" ofType: @"mp3"]];
music = [[AVAudioPlayer alloc] initWithContentsOfURL: musicurl error: nil];
[musicurl release];
music.numberOfLoops = -1; // Loop indefinately
music.currentTime = 0; // start at beginning
music.volume = 1.0;
music.meteringEnabled = YES;

这是我的 AudioSession 代码:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
audioSession.delegate = self;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setPreferredHardwareSampleRate:44100 error:nil];
[[AVAudioSession sharedInstance] setPreferredIOBufferDuration:30 error:nil];

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
Float32 hardvol = 1.0;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(hardvol), &hardvol);
UInt32 doSetProperty = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
[[AVAudioSession sharedInstance] setActive:YES error: nil];

这可能与声音的比特率有关吗?或者我正在使用 .mp3?

谢谢。

最佳答案

我通过使用AVAudioPlayer类的playAtTime:方法找到了这个问题的解决方案:

   NSTimeInterval shortStartDelay = 0.5;            // seconds
NSTimeInterval now = player.deviceCurrentTime;

[player playAtTime:now + shortStartDelay]; //these players are instances of AVAudioPlayer
[player2 playAtTime:now + shortStartDelay];
[player3 playAtTime:now + shortStartDelay];

使用此功能将允许所有声音异步且同步播放。

关于iphone - AVAudioPlayer 声音文件混合时播放不同步 - iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6253925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com