Как воспроизвести зашифрованное видео в React Native в автономном режиме?

У меня есть видео в моем локальном файле Android, и они зашифрованы с использованием алгоритма AEC. Есть ли какой-нибудь простой способ воспроизвести это видео в режиме response-native-video? Я попытался преобразовать его в base64 и расшифровать его фрагмент за фрагментом, но react-native-video не поддерживает base64 в качестве источника. Я попытался воспроизвести его на react-native-webview, но это не сработало. код ниже

<WebView
            injectedJavaScript={debugging}
            onMessage={(message) => {
              console.log(message);
            }}
            source={{
              baseUrl: '',
              html: `<html>
                 <body>
                    <video width="100%" height="600" controls controlsList="nodownload" autoplay='autoplay' id='myvideo'>
                    <source type="video/mp4" src="data:video/mp4;base64,${videoFile}">
                     </video>
                  </body>
                  <script src="${RNFetchBlob.fs.dirs.MainBundleDir}/bundle.js"></script>
                  <script type="text/javascript">
                    console.log('check is check')
                  </script>
                  <script type="text/javascript">
                    console.log('check is check  32 and this is from the nepal')
                    let data = '';
                    RNFetchBlob.fs
                    .readStream('file:///' + ${allVideoFile[1].path}, 'base64', 102399, 250)
                    .then((stream) => {
                      stream.open();
                      stream.onData((chunk) => {
                        data+=chunk;
                      });
                      stream.onEnd(() => {});
                    }).catch(err=>{
                      console.log('Error is',err)
                    })
                    console.log('data is',data)
                  </script>
               </html>`,
            }}
          />

Я пробовал различные другие решения из поиска, но ничего не помогло. Я не знаю, что мне здесь не хватает.


person Ashish Gautam    schedule 18.04.2021    source источник


Ответы (1)


так что я сделал это в своем приложении, я дам вам инструкции:

  1. используйте response-native-fs, чтобы получить видеофайл base64
  2. расшифровать его и сохранить с помощью react-native-fs в DocumentDirectoryPath (этот путь предопределен в react-native-fs)
  3. react-native-video может читать файл base64, поэтому укажите путь напрямую source={{ uri: videoUrl }}

дайте мне знать, сработало ли это для вас.

ваше здоровье.

person Aymen    schedule 29.04.2021