react-native-view-shot icon indicating copy to clipboard operation
react-native-view-shot copied to clipboard

Option `handleGLSurfaceViewOnAndroid` doesn't work for `captureRef`

Open caiotoledo-lunasystems opened this issue 1 year ago • 0 comments

bug report

The property handleGLSurfaceViewOnAndroid in CaptureOptions doesn't work for the captureRef method.

Version & Platform

npm ls react-native react-native-view-shot #
[email protected] /home/caio-toledo/LunaSystems/projects/luna-oculus
├─┬ @aws-amplify/[email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ └── [email protected] deduped
├─┬ @react-native-async-storage/[email protected]
│ └── [email protected] deduped
├─┬ @react-native-community/[email protected]
│ └── [email protected] deduped
├─┬ @react-native-community/[email protected]
│ └── [email protected] deduped
├─┬ @react-native-community/[email protected]
│ └── [email protected] deduped
├─┬ @react-navigation/[email protected]
│ ├─┬ @react-navigation/[email protected]
│ │ └── [email protected] deduped
│ └── [email protected] deduped
├─┬ @react-navigation/[email protected]
│ └── [email protected] deduped
├─┬ @react-navigation/[email protected]
│ └── [email protected] deduped
├─┬ @react-navigation/[email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ ├─┬ @react-native-picker/[email protected]
│ │ └── [email protected] deduped
│ └─┬ [email protected]
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ ├─┬ @aws-amplify/[email protected]
│   │ │ └─┬ @aws-amplify/[email protected]
│   │ │   └─┬ [email protected]
│   │ │     └── [email protected] deduped
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ @aws-amplify/[email protected]
│   │     └─┬ [email protected]
│   │       └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ [email protected]
│   │   └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   ├─┬ @aws-amplify/[email protected]
│   │ └─┬ @aws-amplify/[email protected]
│   │   └─┬ [email protected]
│   │     └── [email protected] deduped
│   └─┬ @aws-amplify/[email protected]
│     └─┬ @aws-amplify/[email protected]
│       └─┬ [email protected]
│         └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
├─┬ [email protected]
│ └── [email protected] deduped
└─┬ [email protected]
  └─┬ @react-native/[email protected]
    └── [email protected] deduped

Platform: Android?

Expected behavior

I have the following view:

<View ref={viewRef} style={styles.container}>
  <GstPlayer
    style = {styles.videoPlayer}
    uri = {uri}
    ref = {gstPlayerRef}
    onStateChanged={onStateChanged}
  />
</View>

const styles = StyleSheet.create({
  container: {flex: 1, justifyContent: 'center', alignItems: 'center'},
  videoPlayer: {flex: 1, width: '100%', height: '100%'}
})

In case I try to capture the viewRef using:

    captureRef(viewRef, {
      format: "jpg",
      quality: 1,
      handleGLSurfaceViewOnAndroid: true
    }).then(
      (uri) => {
        console.log("Image saved to", uri)
      },
      (error) => {
        console.error("Oops, snapshot failed", error)
      }
    );

I always get the error.

But in case I use the captureScreen method with the same parameters it works fine.

Actual behavior

Both captureRef and captureScreen should have the same behaviour.

Steps to reproduce the behavior

caiotoledo-lunasystems avatar Sep 04 '24 09:09 caiotoledo-lunasystems