У меня есть аудиофайл, который я хочу отправить другому пользователю с помощью 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 на телефоне, которую я получаю:
тип файла не распознан.
Я использую тот же процесскодировка для файла изображения, и она работает без проблем.
Любая помощь приветствуется, ребята.Танки.