- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个应用程序(企业、分布式 OTA),其中包括录制视频剪辑。突然间,我们开始收到缺少音频的视频上传,现在这个问题似乎完全可以重现。我一直在使用 PBJVision 库,它似乎工作得很好,但我也用 SwiftyCam(另一个基于 AVFoundation 的库)测试了它,结果相同。目前还不清楚这是何时引入的,但我检查了以下内容:
NSMicrophoneUsageDescription
保存到相机胶卷的副本也是无声的,因此上传视频时不会发生这种情况。我也开始只使用 AVFoundation 实现录制,但如果这会产生相同的结果,我不想浪费时间。什么可能导致特定应用程序无法录制带有视频的音频?我查看了相关问题,但所提供的解决方案均无法解决我在这里遇到的问题。
编辑:
以下是启动、记录和停止 PBJVision session 时出现的日志:
[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
最佳答案
原来这其实是因为在开始录像后使用了另一个库来播放声音。这显然抢占了录音的音频 channel ,因为它最终是空的(参见 Record Audio/Video with AVCaptureSession and Playback Audio simultaneously? )。在开始视频录制之前或之后是否开始其他声音播放似乎无关紧要。这是一个很好的警告案例,关于使用多个涉及相同系统 API 的库——在某些情况下,就像这个例子,它们以不受欢迎的方式交互。
在这种情况下,解决方案是确保两个来源不使用相同的 AVAudioSessionCategory , 所以他们不冲突。
关于ios - 视频不再录制音频 (PBJVision/AVFoundation),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45885574/
您好,我正在尝试在后置和前置摄像头之间切换,如果我开始使用前置摄像头进行 session ,它可以正常工作,但反过来,AVCapturepreview 层不可见,只显示空白屏幕。 p> 最佳答案 首先
我有一个应用程序(企业、分布式 OTA),其中包括录制视频剪辑。突然间,我们开始收到缺少音频的视频上传,现在这个问题似乎完全可以重现。我一直在使用 PBJVision 库,它似乎工作得很好,但我也用
我在 Instagram 应用程序中使用“PBJVISION”,类似于触摸录制功能。它工作正常,但当我尝试从 PBJCameraMode.Video 切换到 PBJCameraMode.Photo
我是一名优秀的程序员,十分优秀!