gpt4 book ai didi

iphone - AVAssetWriter/AVAudioPlayer 冲突?

转载 作者:行者123 更新时间:2023-11-28 17:44:19 26 4
gpt4 key购买 nike

几周前,我发布了这个关于我在使用 AVAssetWriter 时遇到的问题的帖子:AVAssetWriter Woes

进一步的研究似乎导致在使用 AVAudioPlayer 或实际上任何音频系统播放音频时使用 AVAssetWriter 发生冲突。我也尝试过使用 OpenAL。

这是背景:

  • 在调用 [AVAudioPlayer play] 之前,使用 AVAssetWriter 将图像或一组图像中的帧写入视频效果很好。

  • 这只会发生在设备上,不会发生在 sim 卡上。

  • 尝试从 CVPixelBufferPoolCreatePixelBuffer 创建像素缓冲区时发生错误。

  • 一旦音频开始播放,之前存在的 AVAssetWriterInputPixelBufferAdaptor.pixelBufferPool 突然变为 nil。

您可以在这里下载代表项目:http://www.mediafire.com/?5k7kqyvtbfdgdgv

注释掉 AVAudioPlayer 播放,它将在设备上运行。

感谢任何线索。

最佳答案

我已经找到了这个问题的解决方案。

如果你想让 AVAudioPlayer 和 AVAssetWriter 一起正确运行,你必须有一个“可混合”的 Audio Session 类别。

您可以使用可混合的类别,例如 AVAudioSessionCategoryAmbient。

但是,我需要使用 AVAudioSessionCategoryPlayAndRecord。

您可以通过实现此设置将任何类别设置为可混合:

OSStatus propertySetError = 0;

UInt32 allowMixing = true;

propertySetError = AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryMixWithOthers, // 1
sizeof (allowMixing), // 2
&allowMixing // 3
);

关于iphone - AVAssetWriter/AVAudioPlayer 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803337/

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