gpt4 book ai didi

ios - avplayer item的重定向播放输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:11 26 4
gpt4 key购买 nike

我想做的是获取对应于音频文件(不涉及视频)的 AVAsset 的输出样本,并将它们发送到接收样本 block 的音频效果类,我希望能够这是实时的。

我目前正在查看 AVfoundation 类引用和编程指南,但我看不到一种方法可以重定向播放器项目的输出并将其发送到我的效果类,然后从那里将转换后的样本发送到音频输出(使用 AVAssetReaderAudioMixOutput?)并从那里听到。我看到 AVAssetReader 类为我提供了一种使用

获取样本 block 的方法
[myAVAssetReader addOutput:myAVAssetReaderTrackOutput];
[myAVAssetReaderTrackOutput copyNextSampleBuffer];

但 Apple 文档指定 AVAssetReader 类不是制作的,也不应该用于实时情况。有没有人建议我在哪里看,或者我的方法是否正确?

最佳答案

MTAudioProcessingTap 非常适合这个。通过利用 AVPlayer,您可以避免使用 AVAssetReaderOutput 自己阻止样本,然后自己在音频队列或音频单元中渲染它们。

相反,将 MTAudioProcessingTap 附加到您的 AVAsset 的 audioMix 的 inputParameters,您将获得 block 状样本,然后很容易将其放入效果器中。

这样做的另一个好处是,它将使用从 URL 派生的 AVAssets,这些 URL 不能总是被其他 Apple API(如音频文件服务)打开,例如用户的 iPod 库。此外,您可以获得 AVPlayer 免费提供的所有功能,例如容忍音频中断,如果您使用 AVAssetReader 解决方案,则必须手动实现这些功能。

要设置点击,您必须设置一些系统在播放期间适当调用的回调。可以在 this tutorial here 找到此类处理的完整代码。 .

关于ios - avplayer item的重定向播放输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627855/

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