Как превратить аудио файл в зашифрованную строку перед отправкой с помощью socket.io? - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть аудиофайл, который я хочу отправить другому пользователю с помощью socket.io.

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

В настоящее время я пытаюсь отправить файл, используя base64 encoder.проблема заключается в том, что когда принимающий пользователь получает файл, и он декодируется с использованием base64 decoder обратно в файл и записывается на диск, аудиофайл больше не будет воспроизводиться, и ошибка говорит: «тип файла не распознан».

вот код, который я пробовал до сих пор:

кодирующий аудиофайл:

  var file = new File(_filePath);
    List<int> fileBytes = file.readAsBytesSync();

    String _base64 = base64Encode(fileBytes);

затем при получении я использую:

 recreateFileFromBase64(String data) async {

        final encodedStr = data;
        var bytes = base64.decode(encodedStr);
        String dir = (await getApplicationDocumentsDirectory()).path;


        String fileExtension;


        fileExtension = '.m4a';

       File file = File(
           "$dir/" + DateTime.now().millisecondsSinceEpoch.toString() + fileExtension);

       await file.writeAsBytes(bytes);
}

Затем, когдаЯ пытаюсь воспроизвести аудиофайл, используя плагин аудиоплеера или в папке InternalStorage на телефоне, которую я получаю:

тип файла не распознан.

Я использую тот же процесскодировка для файла изображения, и она работает без проблем.

Любая помощь приветствуется, ребята.Танки.

...