代码之家  ›  专栏  ›  技术社区  ›  ddp

AVPlayerLooper、AVComposition和AVMutableAudioMixInputParameters:循环之间的音量不稳定

  •  1
  • ddp  · 技术社区  · 7 年前

    我使用AVPlayerLooper在AVPlayer中循环视频。

    我在构图上应用了两个audiomix输入参数,每个音轨一个用于管理各自的音量(使用setVolume()方法)。

    看起来一切正常,但我注意到音量有问题:

    第一个循环很好,并呈现预期的体积,但下一个循环的体积似乎是随机的,一个循环位于预期的体积(比如setVolume()中的4.0),另一个处于默认值(1.0)。

    请注意,使用AVAssetExportSession导出文件中的相同合成(因此,从任何循环器中导出)效果很好,卷总是如预期的那样。

    你有什么建议可以帮我解决这个问题吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gordon Childs    7 年前

    这一切听起来都像一个bug(即第一个循环工作, AVAssetExportSession AVMutableAudioMixInputParameters 对于文件[0,1]范围之外的值,听起来可能会引发奇怪的行为,但是改变 MTAudioProcessingTap kMTAudioProcessingTapCreationFlag_PostEffects kMTAudioProcessingTapCreationFlag_PreEffects

    从头文件:

    表示在任何效果之前插入处理点击。
    KmtudioProcessingtCreationFlag_后效 表示在任何效果之后插入处理点击。

    AVAudioMix inputParameters ( 没有特殊的优先标志,所以我假设它们是按数组顺序应用的。所有这些都不意味着混合配置在某个时间点被丢弃,所以我猜pre-fx正好让您避免了错误、不愉快的代码路径。

    总之,我希望应用音量控制对您来说不是问题 之后 你的水龙头。如果是的话,只需在水龙头内使用音量。

    但是,老兄,他们之间的一种讨厌的互动 AVPlayerLooper , AVComposition MTAudioProcessingTap

    推荐文章