在iOS 14.2中使用相机录制视频时显示黑屏

时间:2020-11-11 13:22:39

标签: uiimagepickercontroller video-capture ios14 xcode12

在我的应用程序中,我编写了一个代码来使用UIImagePickerController录制视频。在所有其他设备上都可以正常运行,只有我的一个客户端遇到运行iOS 14.2的iPhone 8的问题,即在录制视频时显示黑屏,并且右下方按钮上的后置或后置摄像头都无法滑动。

这是我的代码和图片:

UIImagePickerController *evidencePicker = [[UIImagePickerController alloc] init];
evidencePicker.delegate = self;
evidencePicker.mediaTypes =  [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
evidencePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
evidencePicker.videoMaximumDuration = 10.0;
evidencePicker.allowsEditing = YES;
evidencePicker.videoQuality = UIImagePickerControllerQualityTypeLow;
[self.navigationController presentViewController:evidencePicker animated:YES completion:nil];

Black screen on camera for video

还具有摄像头权限。

那么,呈现UIImagePickerController时我做错了什么吗?还是需要检查其他内容?

2 个答案:

答案 0 :(得分:0)

在呈现UIImagePickerController之前,请检查相机的可用性。像这样:

import React from 'react'
import {StyleSheet, View,Text, Switch, Button, Alert, ScrollView, FlatList, SafeAreaView} from 'react-native'
    
    export default () => { 

    // use data set in default state
    const [data, setData] = React.useState([
            {
                index: 1,
                title: 'Toggle Night Mode',
            },
            {
                index: 2,
                title: 'Remind me to take a break',
            },
            {
                index: 3,
                title: "Remind me when it's bedtime",
            },
    
        ]);

        function toggleSwitch(value, index){

      const newData = [...data];
      const newData[index].isEnable = value;
      setData(newData);

    }

        function Item({item, index}) {
            return (
                <View>
                    <Text style={styles.text}> {item.title} </Text> // use `title` here like this
                    <Switch    
                        .....
                        value={item.isEnable || false} // change here
                        onValueChange={(value) => toggleSwitch(value, index) } // change here
                    />
                </View>
            )
        } 
        
        return (
            <>
            <View style = {styles.container}>
                <FlatList
                    data = {data}
                    keyExtractor = {item => item.id}
                    renderItem = {({ item, index }) => <Item item={item} index={index} /> } // send `item` as prop
                />

            </View>    
            </>
        
        );
    }

答案 1 :(得分:0)

我也遇到过这个问题,我的设备是14.3。 我同事是 14.6 ,同样的代码 14.6 是正常的。我测试是UIImagePickerControllerSourceTypeCamera这个枚举值的问题,如果改成默认就可以正常录制视频了

相关问题