mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +00:00
Fix audio record
This commit is contained in:
@ -4,11 +4,13 @@ import 'dart:typed_data';
|
||||
import 'package:comunic/ui/dialogs/alert_dialog.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:comunic/utils/log_utils.dart';
|
||||
import 'package:comunic/utils/permission_utils.dart';
|
||||
import 'package:comunic/utils/ui_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:record/record.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:record_mp3/record_mp3.dart';
|
||||
import 'package:video_player/video_player.dart';
|
||||
|
||||
/// Record audio dialog
|
||||
@ -17,9 +19,9 @@ import 'package:video_player/video_player.dart';
|
||||
|
||||
/// Record audio
|
||||
Future<Uint8List> showRecordAudioDialog(BuildContext context) async {
|
||||
if (!await Record.hasPermission()) {
|
||||
await alert(
|
||||
context, "Permission d'accéder au périphérique audio refusée !");
|
||||
// Request record permission
|
||||
if (!await requestPermission(context, Permission.microphone)) {
|
||||
alert(context, tr("Did not get permission to access microphone!"));
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -32,8 +34,6 @@ Future<Uint8List> showRecordAudioDialog(BuildContext context) async {
|
||||
barrierDismissible: false,
|
||||
);
|
||||
|
||||
if (await Record.isRecording()) await Record.stop();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -67,6 +67,7 @@ class __RecordAudioDialogState extends State<_RecordAudioDialog> {
|
||||
@override
|
||||
void dispose() {
|
||||
_disposePlayer();
|
||||
RecordMp3.instance.stop();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@ -168,9 +169,12 @@ class __RecordAudioDialogState extends State<_RecordAudioDialog> {
|
||||
|
||||
final dir = await getTemporaryDirectory();
|
||||
|
||||
_recordPath = path.join(dir.absolute.path, "tmp-audio-record.m4a");
|
||||
_recordPath = path.join(dir.absolute.path, "tmp-audio-record.mp3");
|
||||
|
||||
await Record.start(path: _recordPath);
|
||||
RecordMp3.instance.start(_recordPath, (fail) {
|
||||
print(fail);
|
||||
snack(context, tr("Failed to start recording!"));
|
||||
});
|
||||
|
||||
setState(() => _recording = true);
|
||||
} catch (e, s) {
|
||||
@ -181,7 +185,7 @@ class __RecordAudioDialogState extends State<_RecordAudioDialog> {
|
||||
|
||||
void _stopRecording() async {
|
||||
try {
|
||||
await Record.stop();
|
||||
RecordMp3.instance.stop();
|
||||
|
||||
setState(() => _recording = false);
|
||||
} catch (e, s) {
|
||||
|
Reference in New Issue
Block a user