ios - 检查 Apple 设备的相机是否支持慢动作?
问题描述
如何检查苹果设备(至少是 iPhone 和 iPad)是否支持慢动作录制?目前,我正在使用屏幕尺寸来检查 iPhone,因此仍然可以使用 iPhone 5s 和 iPhone SE。对于 iPad,我面临着类似的问题。
我正在使用以下代码,但这似乎不起作用
NSArray *cameraDevices = [AVCaptureDevice devicesWithMediaType: AVMediaTypeVideo];
for (AVCaptureDevice *camera in cameraDevices) {
if ([camera position] == AVCaptureDevicePositionBack) {
if ([camera activeVideoMaxFrameDuration].timescale >= 120) {
[self showChooseAlert];
} else {
[self performSegueWithIdentifier:@"startVideoRecording" sender:self];
}
}
}
解决方案
检查以下代码:
NSArray *cameraDevices = [AVCaptureDevice devicesWithMediaType: AVMediaTypeVideo];
AVCaptureDevice *currentDevice;
for (AVCaptureDevice *camera in cameraDevices) {
if ([camera position] == AVCaptureDevicePositionBack) {
currentDevice = camera;
}
}
for (AVCaptureDeviceFormat *format in currentDevice.formats)
{
NSArray *ranges = format.videoSupportedFrameRateRanges;
AVFrameRateRange *frameRates = ranges[0];
if (frameRates.maxFrameRate >= 120) {
// Do Slow Motion stuff
}
}
推荐阅读
- java - 这个结构有效吗?
- ios - 我无法在全局队列上运行进程(后台模式)
- node.js - ADB SHELL INPUT TEXT 结果中缺少字符
- vb.net - 从 VB.net 连接到 Teradata
- flutter - Flutter,FileReader()编译到Android时崩溃
- jquery - 将控制按钮定位在 div 元素的侧面
- java - java - 如何在Java运行时更改具体装饰器中的变量
- entity-framework - EF Core 3.1 Linq 查询失败 - 无法将“System.Int32”类型的对象转换为“System.Boolean”类型
- c++ - 解释这个排序算法是如何工作的?
- c++ - tensorflow 错误 此文件需要 ISO C++ 2011 标准的编译器和库支持