gpt4 book ai didi

iphone - 如何设置多个文件播放器音频单元同时启动?

转载 作者:行者123 更新时间:2023-12-02 23:58:20 27 4
gpt4 key购买 nike

现在我有一个循环遍历文件播放器音频单元的数组,并告诉他们在音频文件中的哪个位置开始播放。 (这有效)在同一个循环中,我有以下代码来告诉单元何时开始播放(-1 使它们在下一个渲染周期中播放)。问题是它们没有同时开始,因为在我有机会告诉第三首轨道播放之前,第一首轨道开始播放。我想说的是“轨道一,你正好播放 5 个周期,轨道 2 你正好播放 4 个周期,轨道 3 你正好播放 3 个周期……等等。这样他们同时播放。这是正确的方法?如果是这样,你为 startTime.mSampleTime 设置了什么值?我还没有找到任何文档告诉我如何做到这一点。谢谢

    // tell the file player AU when to start playing (-1 sample time means next render cycle)
AudioTimeStamp startTime;
memset (&startTime, 0, sizeof(startTime));
startTime.mFlags = kAudioTimeStampSampleTimeValid;
startTime.mSampleTime = -1;
AudioUnitSetProperty(fileUnitArray[mycount], kAudioUnitProperty_ScheduleStartTimeStamp, kAudioUnitScope_Global, 0, &startTime, sizeof(startTime));

最佳答案

我无法找到有关将 mSampleTime 设置为任何其他值然后 -1(即从下一个周期开始)的任何信息,但我能够解决该问题。不是保持 AUGraph 运行,而是使用 AudioUnitReset 重置文件播放器音频单元,然后使用上面的代码重新启动文件播放器,我存储当前文件播放器播放头位置,完全停止 AUGraph,用当前的重新初始化 AUGraph播放头位置,而不是告诉它从零位置开始,然后重新启动 AUGRAPH。

关于iphone - 如何设置多个文件播放器音频单元同时启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638911/

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