我有一个应用程序(企业,分布式OTA),其中包括记录视频剪辑。突然之间,我们开始获取缺少音频的视频上传,现在这个问题似乎是完全可重现的。我一直在使用PBJVision库,它似乎工作得很好,但我也用SwiftyCam(另一个基于AVFoundation的库)测试了它,结果相同。目前还不清楚这是引进什么时候,但我检查以下内容:视频不再录制音频(PBJVision/AVFoundation)
- 确保一个
NSMicrophoneUsageDescription
在目标的.plist - 确保摄像头和麦克风的权限都呈现为授予系统设置 设置
- 尝试在设置禁用麦克风权限(应用程序正确提示用户重新启用权限)
- 尝试视频捕获库的早期版本中回归的情况下
- 尝试不同的视频捕获库
- 为PBJVision/SwiftyCamera显式设置音频启用和比特率,并确保会话至少报告它在日志中有音频(也就是说,库和AVFoundation认为有一个输入设置,输入流是正在处理)
- 采取与系统摄像头的视频,并上传通过应用程序 - 在这种情况下,声音不工作(这不是硬件问题)
- 重置设备上的所有内容和权限,使肯定没有某种缓存的权限挂出
- 确保音量没有静音
保存到相机胶卷的副本也是无声的,因此视频上传时不会发生。我也开始使用AVFoundation来实现录制,但如果这会产生相同的结果,不想浪费时间。什么可能导致一个特定的应用程序不记录视频音频?我查看了相关的问题,并没有提供解决方案来解决我在这里遇到的问题。
编辑:
下面是启动时,记录和停止PBJVision会出现在日志:
[5411:1305718] VISION: camera setup
[5411:1305718] VISION: switchDevice 1 switchMode 1
[5411:1305718] VISION: capture session setup
[5411:1305291] VISION: session was started
[5411:1305718] VISION: capture session running
[5411:1305291] VISION: starting video capture
[5411:1305718] VISION: ready for video (1)
[5411:1305718] VISION: audio stream setup, channels (1) sampleRate (44100.000000)
[5411:1305718] VISION: ready for audio (1)
[5411:1305291] VISION: ending video capture
[5411:1305963] VISION: capture session stopped
[5411:1305963] VISION: session was stopped
[5411:1305291] CMTimeMakeWithSeconds(8.396 seconds, timescale 24): warning: error of -0.021 introduced due to very low timescale