Ошибка сжатия видео в apk на уровне API ниже 18 - PullRequest
0 голосов
/ 16 июня 2020

Я использую это: https://github.com/classapp/react-native-video-helper/i в собственном реагировании для обрезки и сжатия видео, похоже, они использовали код телеграммы для сжатия видео, когда версия sdk меньше 18 с этим кодом:

 if (Build.VERSION.SDK_INT >= 18) {
                                                    outputSurface.drawImage(false);
                                                    inputSurface.setPresentationTime(info.presentationTimeUs * 1000);

                                                    if (listener != null) {
                                                        listener.onProgress((float) info.presentationTimeUs / (float) duration * 100);
                                                    }

                                                    inputSurface.swapBuffers();
                                                } else {
                                                    int inputBufIndex = encoder.dequeueInputBuffer(TIMEOUT_USEC);
                                                    if (inputBufIndex >= 0) {
                                                        outputSurface.drawImage(true);
                                                        ByteBuffer rgbBuf = outputSurface.getFrame();
                                                        ByteBuffer yuvBuf = encoderInputBuffers[inputBufIndex];
                                                        yuvBuf.clear(); 
                                                      convertVideoFrame(rgbBuf, yuvBuf, colorFormat, resultWidth, resultHeight, padding, swapUV);
                                                        encoder.queueInputBuffer(inputBufIndex, 0, bufferSize, info.presentationTimeUs, 0);
                                                    } else {
                                                        Log.e("tmessages", "input buffer not available");
                                                    }
                                                }

я получаю эту ошибку: Собственный метод не найден: com.reactlibrary.video.MediaController.convertVideoFrame:

по мере того, как я исследую проблему, кажется, что следует добавить JNI для кода C, но нет JNI или C файл в этом пакете, и я не знаком с разработкой andriod. Я проверил код телеграммы и обнаружил следующее: https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/jni/video.c, но я не знаю, как мне добавить это в пакет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...