React-Native - путь к локальным файлам - PullRequest
0 голосов
/ 06 октября 2019

мой вопрос о реагирующе-родном 0.60+ и о локальных файлах.

Мое приложение имеет следующую структуру папок:

  • App.js
  • android
  • ios
  • node_modules
  • src
    • компоненты
    • представления
    • активы
    • изображения
      • myImage.png

Теперь я хочу получить путь от myImage.png. Я хочу добавить водяной знак в видео. Водяной знак для добавления, это myImage.png. Для этого я использую библиотеку ffmpeg.

Но как мне получить доступ к этим файлам? Каков путь этих файлов? я пробовал это с React-Native-Filesystem (RNFS), но без решений.

Каждый раз, когда get: каталог или файл не существует

FFMPEG Cmd:

const ffmpegWatermarkCommand = '-i ' + RNFS.ExternalStorageDirectoryPath+ '/videos/myVideo.mp4 ' + "-i [Path to Local Watermark]/myImage.jpg ' + '-filter_complex "overlay=10:10" ' + RNFS.ExternalStorageDirectoryPath + '/videos/outVideomp4';

Я надеюсь, у кого-то есть решение для меня. Спасибо

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Вам нужно будет использовать ключевое слово require для ресурсов, которые будут связаны с приложением. Как описано здесь:

https://facebook.github.io/react-native/docs/images

Добавьте файл images.js только для изображений (создайте его где угодно, просто измените путь соответственно)

const images = {
  myImage: require("./images/myImage.png")
}

Затем укажитепуть относительно файла, который вы в настоящее время устанавливаете ffmpegWatermarkCommand

const ffmpegWatermarkCommand = '-i '
+ RNFS.ExternalStorageDirectoryPath+ '/videos/myVideo.mp4 '
+ "-i ../images/myImage.jpg '
+ '-filter_complex "overlay=10:10" '
+ RNFS.ExternalStorageDirectoryPath + '/videos/outVideomp4';
0 голосов
/ 10 октября 2019

Мой код теперь выглядит следующим образом, но он не работает, говорят, что путь не существует:

            const watermark = require( '../images/watermark.png' );


            const ffmpegWatermarkCommand = '-i '
                + path + '/videos/videoWithoutWatermark.mp4 '
                + '-i ../images/watermark.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" '
                + path + '/videos/videoWithWatermark.mp4';

Мой код похож на ваш пример. Но нет ссылки на ../images/watermark.png

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