提交代码

This commit is contained in:
魏少阳 2023-12-22 14:26:58 +08:00
parent ae3b80b7b4
commit a6773da4fd
3 changed files with 42 additions and 29 deletions

View File

@ -223,6 +223,8 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
}),
bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png",
"开锁", AppColors.mainColor, () {
// _playRecording();
showDeletPasswordAlertDialog(context);
})
]);
@ -231,34 +233,22 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
String getAnswerBtnImg() {
switch (state.udpStatus.value) {
case 8:
{
return "images/main/icon_lockDetail_monitoringUnTalkback.png";
}
case 9:
{
return "images/main/icon_lockDetail_monitoringTalkback.png";
}
default:
{
return "images/main/icon_lockDetail_monitoringAnswerCalls.png";
}
}
}
String getAnswerBtnName() {
switch (state.udpStatus.value) {
case 8:
{
return "长按说话";
}
case 9:
{
return "松开发送";
}
default:
{
return "接听";
}
}
}
@ -356,6 +346,9 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
await recorder.startRecorder(
toFile: filePath,
codec: Codec.pcm16WAV,
bitRate: 8000,
numChannels: 1,
sampleRate: 8000,
);
}
@ -363,9 +356,6 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
_stopRecording() async {
await recorder.stopRecorder();
var userMobileIP = await NetworkInfo().getWifiIP();
var userMobile = await Storage.getMobile();
// final file = File(filePath);
File file = File(filePath); // 使 create
@ -374,23 +364,13 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
final List<int> bytes = await file.readAsBytes();
print('Recorded audio bytes.length:${bytes.length} bytes: $bytes');
//
UDPSenderManage.sendMainProtocol(
command: 150,
commandTypeIsCalling: 1,
subCommand: 8,
lockID: UDPManage().lockId,
lockIP: UDPManage().host,
userMobile: userMobile,
userMobileIP: userMobileIP,
endData: bytes
);
_sendRecordData(bytes);
}
}
Future<String> getFilePath() async {
final directory = await getApplicationDocumentsDirectory();
final filePath = '${directory.path}/recording.mp3';
final filePath = '${directory.path}/recording.wav';
//
File file = File(filePath);
@ -425,4 +405,33 @@ class _LockMonitoringPageState extends State<LockMonitoringPage> {
// _stopPlaying() async {
// await player.stopPlayer();
// }
_sendRecordData(List<int> bytes) async {
//
var userMobileIP = await NetworkInfo().getWifiIP();
var userMobile = await Storage.getMobile();
// 57
List<int> topBytes = [
1, 1, 1, 1, //
1, 0, //
1, 0, //
64, 0, 0, 0, //
1, 0, //
1, 0, //
64, 1, //
176, 4, //
];
UDPSenderManage.sendMainProtocol(
command: 150,
commandTypeIsCalling: 1,
subCommand: 8,
lockID: UDPManage().lockId,
lockIP: UDPManage().host,
userMobile: userMobile,
userMobileIP: userMobileIP,
endData: bytes
);
}
}

View File

@ -26,6 +26,7 @@ class CallTalk {
var growableList;
bool getFirstFrame = false; //
final FlutterSoundPlayer _audioPlayer = FlutterSoundPlayer();
Uint8List? allPcmData = Uint8List(0);
CallTalk._init() {
iframe = IframeInfo();
@ -53,8 +54,9 @@ class CallTalk {
Uint8List pcmData = G711Decoder().g711Decode(g711Data, G711Type.uLaw);
// 使 pcmData
print('得到的pcmData:$pcmData');
_playRawData(pcmData);
allPcmData!.addAll(pcmData);
await Future.delayed(const Duration(seconds: 3));
_playRawData(allPcmData!);
}
//
else {

View File

@ -62,6 +62,8 @@ class UDPMainProtocolCommand extends UDPSenderProtocol {
data.add(int.parse(element));
});
data.addAll(endData!);
// print("datadatadata:$data");
return data;
}