Как я могу воспроизвести видео из байтового массива и не позволить пользователю получить необработанный файл? - PullRequest
0 голосов
/ 16 января 2019

Мой вопрос - я храню зашифрованный файл клипа в клиенте. Но видео плеер поддерживает только видео формат файла.

Так что я конвертирую байтовый массив в файл mp4. Кто-нибудь может предложить лучшее решение для воспроизведения байтового массива?

Мой текущий метод попытки сделать это:

  1. Запись байта в файл .mp4
  2. Загрузите и воспроизведите файл .mp4 с помощью Video Player
  3. Удалить временный файл после воспроизведения видео

Кажется, работает, но я не уверен, безопасно ли это.

Вот мой код:

void Start()
{
    byte[] data = EncryptManager.Instance.DecryptData(encryptedData);
    if (data != null){
            WriteByteArrayToFile("temp.mp4", data);
            videoPlayer.url = "temp.mp4";
            videoPlayer.source = VideoSource.Url;
     }
     StartCoroutine(ChekVideoLoading());
}

IEnumerator ChekVideoLoading()
{
    while (!videoPlayer.isPlaying)
    {
        yield return null;
    }
    yield return new WaitForSeconds(1f);
    File.Delete("temp.mp4");
}

public void WriteByteArrayToFile(string fileName, byte[] data)
{
    FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
    fileStream.Write(data, 0, data.Length);  
}  

1 Ответ

0 голосов
/ 07 марта 2019

Я обнаружил, что проигрыватель AVPro предоставляет OpenVideoFromBuffer , чтобы позволить мне воспроизводить двоичные данные напрямую. Но этот метод только для платформы Windows. Надеюсь, что эта информация может кому-то помочь.

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