Флаттер: Как кодировать и декодировать аудиофайлы в формате Base64? - PullRequest
1 голос
/ 13 февраля 2020

Я создаю приложение ChatBot, используя Dialogflow , и я хочу реализовать функцию распознавания голоса в моем приложении. Как вы знаете, Dialogflow предоставляет нам возможность обнаруживать намерения на основе аудио , но он принимает аудио только в виде base64. Проблема для меня в том, что я не могу кодировать аудио файл в Base64. Я новичок в Flutter Development, поэтому, если я что-то упустил или сделал неправильно, пожалуйста, дайте мне знать. Спасибо!

Я попробовал этот метод, но он не дает правильного вывода:

  Future<String> makeBase64(String path) async {
    try {
      if (!await fileExists(path)) return null;
      File file = File(path);
      file.openRead();
      var contents = await file.readAsBytes();
      var base64File = base64.encode(contents);

      return base64File;
    } catch (e) {
      print(e.toString());

      return null;
    }
  }

1 Ответ

0 голосов
/ 13 февраля 2020

Вы могли бы сделать это:

List<int> fileBytes = await file.readAsBytes();
String base64String = base64Encode(fileBytes);

Преобразованная строка не включает mimetype, поэтому вам может потребоваться включить вот так

final fileString = 'data:audio/mp3;base64,$base64String';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...