ບັນຫາທີ່ເຈິລະຫວ່າງໃຊ້ plugin: record , just_audio ສຳລັບເຮັດ voice record [Flutter-app]

Noy Sengxayya
LaoITDev
Published in
2 min readMar 12, 2023
https://pub.dev/packages/just_audio

ໝາຍເຫດ: ອັນນີ້ແມ່ນຜູ້ຂຽນ ໄດ້ຂຽນໄວ້ກັນລືມໃນກໍລະນີເທື່ອຕໍ່ໆໄປທີ່ເຈິບັນຫາ, ໃນນີ້ເນື້ອຫາຈະກ່ຽວກັບບັນຫາທີ່ເຈິມາເອງລະຫວ່າງ Dev ແອັບກ່ຽວກັບການບັນທຶກສຽງ ລະຫວ່າງ platform Android && iOS ດ້ວຍ plugin Record ແລ້ວຫຼິ້ນສຽງດ້ວຍ just_audio

ບັນຫາທີ່ເຈິ: ເວລາ record ຈາກ Android ແລ້ວສົ່ງຫາ iOS ອຸປະກອນ iOS ບໍ່ສາມາດຟັງໄຟລ໌ສຽງໄດ້ ແຕ່ iOS ສົ່ງຫາ iOS ໄດ້ປົກກະຕິ ແລະ iOS ສົ່ງຫາ Android ເຄື່ອງ Android ກໍ່ສາມາດຟັງໄດ້ປົກກະຕິ

ສາເຫດ: (ທີ່ຄິດວ່າແມ່ນ ຫະຫະ)

  • ໂຕ default Encoder ຂອງ plugin Record ນີ້ຕັ້ງຄ່າໃຫ້ເປັນ AudioEncoder.aacLc, Android ບາງລຸ້ນ encode aac ໄປແລ້ວ iOS ບໍ່ສາມາດອ່ານ File ໂດຍໃຊ້ກັບ Plugin just_audio
/// Audio recorder API
class Record implements RecordPlatform {
StreamController<Amplitude>? _amplitudeStreamCtrl;
Timer? _amplitudeTimer;

@override
Future<void> start({
String? path,
AudioEncoder encoder = AudioEncoder.aacLc,
int bitRate = 128000,
int samplingRate = 44100,
int numChannels = 2,
InputDevice? device,
}) {
_log('Start recording');
return RecordPlatform.instance.start(
path: path,
encoder: encoder,
bitRate: bitRate,
samplingRate: samplingRate,
numChannels: numChannels,
device: device,
);
}
...

ທີ່ໄດ້ແກ້ໄຂໄປ: ໃສ່ AudioEncoder.wav ຕອນ start record ໄປເລີຍ (ເນື່ອງຈາກຈຳເປັນແກ້ຂັດໄປກ່ອນ)

...
await audioRecorder.start(
path: audioPath,
encoder: AudioEncoder.wav,
);
...

ສະຫຼຸບ:

ບັນຫານີ້ຈະຄ້າຍໆກໍລະນີດຽວກັນກັບ plugin audio_waveforms issue #113

--

--