新增录音方法(待验证)
This commit is contained in:
parent
962c7cfded
commit
ca3e9a62c7
@ -1,11 +1,9 @@
|
|||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:flutter_sound/flutter_sound.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../appRouters.dart';
|
|
||||||
import '../../../../app_settings/app_colors.dart';
|
import '../../../../app_settings/app_colors.dart';
|
||||||
import 'lockMonitoring_logic.dart';
|
import 'lockMonitoring_logic.dart';
|
||||||
|
|
||||||
@ -20,6 +18,17 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
|
|||||||
final logic = Get.put(LockMonitoringLogic());
|
final logic = Get.put(LockMonitoringLogic());
|
||||||
final state = Get.find<LockMonitoringLogic>().state;
|
final state = Get.find<LockMonitoringLogic>().state;
|
||||||
|
|
||||||
|
late FlutterSoundRecorder recorder;
|
||||||
|
late FlutterSoundPlayer player;
|
||||||
|
late String filePath;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
_initRecorder();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
@ -31,6 +40,7 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
|
|||||||
? Container(color: Colors.transparent)
|
? Container(color: Colors.transparent)
|
||||||
: Image.memory(
|
: Image.memory(
|
||||||
state.listData.value,
|
state.listData.value,
|
||||||
|
// key: ValueKey<int>(state.listData.value.hashCode),
|
||||||
gaplessPlayback: true,
|
gaplessPlayback: true,
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
height: 1.sh,
|
height: 1.sh,
|
||||||
@ -177,4 +187,37 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
|
|||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//录音处理
|
||||||
|
_initRecorder() {
|
||||||
|
recorder = FlutterSoundRecorder();
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始录音
|
||||||
|
_startRecording() async {
|
||||||
|
filePath = 'your_output_file.wav';
|
||||||
|
await recorder.startRecorder(
|
||||||
|
toFile: filePath,
|
||||||
|
codec: Codec.pcm16WAV,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//停止录音
|
||||||
|
_stopRecording() async {
|
||||||
|
await recorder.stopRecorder();
|
||||||
|
}
|
||||||
|
|
||||||
|
//播放录音
|
||||||
|
_playRecording() async {
|
||||||
|
player = FlutterSoundPlayer();
|
||||||
|
await player.startPlayer(
|
||||||
|
fromURI: filePath,
|
||||||
|
codec: Codec.pcm16WAV,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//停止播放
|
||||||
|
_stopPlaying() async {
|
||||||
|
await player.stopPlayer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user