gpt4 book ai didi

ios - 是什么可以防止用MTAudioProcessingTap调用进程回调?

转载 作者:行者123 更新时间:2023-12-01 16:23:33 25 4
gpt4 key购买 nike

我已经准备了AVPlayerAVAssetExportSession,它们都使用相同的MTAudioProcessingTap,但我都无法调用process回调。我很乐意提供一些帮助,以帮助您识别为什么不调用回调函数而却调用其他回调函数的原因。

我只是试图用轻拍来处理音频,以便按比例增加音量以增加音量。我能够添加包括audioMixaudioTapProcessor,但在运行应用程序时,它仅调用initfinalize回调。

缺少什么阻止了process回调的运行?

    var callbacks = MTAudioProcessingTapCallbacks(
version: kMTAudioProcessingTapCallbacksVersion_0,
clientInfo: UnsafeMutableRawPointer(Unmanaged<AnyObject>.passUnretained(self as AnyObject).toOpaque()),
init: tapInit,
finalize: tapFinalize,
prepare: tapPrepare,
unprepare: tapUnprepare,
process: tapProcess)

var tap: Unmanaged<MTAudioProcessingTap>?
let status = MTAudioProcessingTapCreate(kCFAllocatorDefault, &callbacks, kMTAudioProcessingTapCreationFlag_PostEffects, &tap)
if status != noErr {
debugPrint("Failed to create audio processing tap.")
throw BoosterExporterError.failure
}

我已经在GitHub上发布了完整项目的代码。链接在下面。

https://github.com/brennanMKE/Boosted/blob/master/BoosterKit/BoosterPlayer.swift#L153

最佳答案

您需要找出音频trackID并将其设置为AVMutableAudioMixInputParameters才能使其正常工作。

AVMutableAudioMixInputParameters *audioMixInputParameters = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:self.audioAssetTrack];

请参阅此处的苹果示例
https://developer.apple.com/library/content/samplecode/AudioTapProcessor/Listings/AudioTapProcessor_MYAudioTapProcessor_m.html#//apple_ref/doc/uid/DTS40012324-AudioTapProcessor_MYAudioTapProcessor_m-DontLinkElementID_6

关于ios - 是什么可以防止用MTAudioProcessingTap调用进程回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987935/

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