From a6773da4fd47e11126f3884343cb8fd1c732c10d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Fri, 22 Dec 2023 14:26:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitoring/lockMonitoring_page.dart | 63 +++++++++++-------- star_lock/lib/talk/call/callTalk.dart | 6 +- .../udp/io_protocol/udp_mainProtocol.dart | 2 + 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart index 0dd7a6d5..ad539497 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart @@ -223,6 +223,8 @@ class _LockMonitoringPageState extends State { }), bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png", "开锁", AppColors.mainColor, () { + + // _playRecording(); showDeletPasswordAlertDialog(context); }) ]); @@ -231,34 +233,22 @@ class _LockMonitoringPageState extends State { 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 { await recorder.startRecorder( toFile: filePath, codec: Codec.pcm16WAV, + bitRate: 8000, + numChannels: 1, + sampleRate: 8000, ); } @@ -363,9 +356,6 @@ class _LockMonitoringPageState extends State { _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 { final List 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 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 { // _stopPlaying() async { // await player.stopPlayer(); // } + + _sendRecordData(List bytes) async { + // 刚进来是接听状态,然后改为长按对讲 + var userMobileIP = await NetworkInfo().getWifiIP(); + var userMobile = await Storage.getMobile(); + + // 57 + List 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 + ); + } + } diff --git a/star_lock/lib/talk/call/callTalk.dart b/star_lock/lib/talk/call/callTalk.dart index 4651ad0a..4dbedae9 100644 --- a/star_lock/lib/talk/call/callTalk.dart +++ b/star_lock/lib/talk/call/callTalk.dart @@ -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 { diff --git a/star_lock/lib/talk/udp/io_protocol/udp_mainProtocol.dart b/star_lock/lib/talk/udp/io_protocol/udp_mainProtocol.dart index add59504..0fffeb9b 100644 --- a/star_lock/lib/talk/udp/io_protocol/udp_mainProtocol.dart +++ b/star_lock/lib/talk/udp/io_protocol/udp_mainProtocol.dart @@ -62,6 +62,8 @@ class UDPMainProtocolCommand extends UDPSenderProtocol { data.add(int.parse(element)); }); + data.addAll(endData!); + // print("datadatadata:$data"); return data; } From 82b110778d95313412b1d8dcc49fbfbab295a077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Mon, 25 Dec 2023 10:45:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/.flutter-plugins-dependencies 2 | 1 + .../main/lockDetail/lockDetail/lockDetail_logic.dart | 3 +-- .../main/lockDetail/lockDetail/lockDetail_page.dart | 1 + star_lock/lib/talk/call/callTalk.dart | 11 +++++++++-- star_lock/lib/talk/udp/udp_reciverData.dart | 2 +- 5 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 star_lock/.flutter-plugins-dependencies 2 diff --git a/star_lock/.flutter-plugins-dependencies 2 b/star_lock/.flutter-plugins-dependencies 2 new file mode 100644 index 00000000..976fa555 --- /dev/null +++ b/star_lock/.flutter-plugins-dependencies 2 @@ -0,0 +1 @@ +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"aliyun_push","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aliyun_push-0.1.6/","native_build":true,"dependencies":[]},{"name":"amap_flutter_location","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_location-3.0.0/","native_build":true,"dependencies":[]},{"name":"amap_flutter_map","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_map-3.0.0/","native_build":true,"dependencies":[]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","native_build":true,"dependencies":[]},{"name":"audioplayers_darwin","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_darwin-5.0.2/","native_build":true,"dependencies":[]},{"name":"auto_orientation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/auto_orientation-2.3.1/","native_build":true,"dependencies":[]},{"name":"camera_avfoundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/camera_avfoundation-0.9.13+6/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":true,"dependencies":[]},{"name":"flutter_ffmpeg","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_ffmpeg-0.4.2/","native_build":true,"dependencies":[]},{"name":"flutter_native_contact_picker","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_native_contact_picker-0.0.4/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_sound-9.2.13/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-8.2.2/","native_build":true,"dependencies":[]},{"name":"g711_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/g711_flutter-2.0.0/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_ios","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/google_maps_flutter_ios-2.3.2/","native_build":true,"dependencies":[]},{"name":"image_gallery_saver","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver-2.0.3/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.8+2/","native_build":true,"dependencies":[]},{"name":"just_audio","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio-0.9.36/","native_build":true,"dependencies":["audio_session"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.3.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_apple-9.1.4/","native_build":true,"dependencies":[]},{"name":"reactive_ble_mobile","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/reactive_ble_mobile-5.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.3.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.3.0/","native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.1.5/","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.4.11/","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/webview_flutter_wkwebview-3.9.1/","native_build":true,"dependencies":[]}],"android":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"aliyun_push","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aliyun_push-0.1.6/","native_build":true,"dependencies":[]},{"name":"amap_flutter_location","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_location-3.0.0/","native_build":true,"dependencies":[]},{"name":"amap_flutter_map","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_map-3.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","native_build":true,"dependencies":[]},{"name":"audioplayers_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_android-4.0.3/","native_build":true,"dependencies":[]},{"name":"auto_orientation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/auto_orientation-2.3.1/","native_build":true,"dependencies":[]},{"name":"camera_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/camera_android-0.10.8+12/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":true,"dependencies":[]},{"name":"flutter_ffmpeg","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_ffmpeg-0.4.2/","native_build":true,"dependencies":[]},{"name":"flutter_native_contact_picker","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_native_contact_picker-0.0.4/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.16/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_sound-9.2.13/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-8.2.2/","native_build":true,"dependencies":[]},{"name":"g711_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/g711_flutter-2.0.0/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/google_maps_flutter_android-2.5.1/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_gallery_saver","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver-2.0.3/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.8+1/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"just_audio","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio-0.9.36/","native_build":true,"dependencies":["audio_session"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.0/","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_android-10.3.6/","native_build":true,"dependencies":[]},{"name":"reactive_ble_mobile","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/reactive_ble_mobile-5.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.2.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.3.0/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.1.0/","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.4.10/","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/webview_flutter_android-3.12.0/","native_build":true,"dependencies":[]}],"macos":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","native_build":true,"dependencies":[]},{"name":"audioplayers_darwin","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_darwin-5.0.2/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"just_audio","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio-0.9.36/","native_build":true,"dependencies":["audio_session"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.3.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.3.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.3.0/","native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.0.7/","native_build":true,"dependencies":[]}],"linux":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"audioplayers_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_linux-3.1.0/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":false,"dependencies":[]},{"name":"file_selector_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.2+1/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-2.3.2/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.0.6/","native_build":true,"dependencies":[]}],"windows":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"audioplayers_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_windows-3.1.0/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":false,"dependencies":[]},{"name":"file_selector_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-2.2.1/","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_windows-0.1.3/","native_build":true,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-2.3.2/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.0.8/","native_build":true,"dependencies":[]}],"web":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","dependencies":[]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","dependencies":[]},{"name":"audioplayers_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_web-4.1.0/","dependencies":[]},{"name":"camera_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/camera_web-0.3.2+2/","dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","dependencies":[]},{"name":"flutter_sound_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_sound_web-9.2.13/","dependencies":[]},{"name":"fluttertoast","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-8.2.2/","dependencies":[]},{"name":"google_maps_flutter_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/google_maps_flutter_web-0.5.4+1/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.0.1/","dependencies":[]},{"name":"just_audio_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio_web-0.4.9/","dependencies":[]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-2.2.1/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.0.19/","dependencies":[]},{"name":"video_player_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/video_player_web-2.0.17/","dependencies":[]}]},"dependencyGraph":[{"name":"aj_captcha_flutter","dependencies":[]},{"name":"aliyun_push","dependencies":[]},{"name":"amap_flutter_location","dependencies":[]},{"name":"amap_flutter_map","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"audio_session","dependencies":[]},{"name":"audioplayers","dependencies":["audioplayers_android","audioplayers_darwin","audioplayers_linux","audioplayers_web","audioplayers_windows","path_provider"]},{"name":"audioplayers_android","dependencies":[]},{"name":"audioplayers_darwin","dependencies":[]},{"name":"audioplayers_linux","dependencies":[]},{"name":"audioplayers_web","dependencies":[]},{"name":"audioplayers_windows","dependencies":[]},{"name":"auto_orientation","dependencies":[]},{"name":"camera","dependencies":["camera_android","camera_avfoundation","camera_web","flutter_plugin_android_lifecycle"]},{"name":"camera_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"camera_avfoundation","dependencies":[]},{"name":"camera_web","dependencies":[]},{"name":"device_info_plus","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_ffmpeg","dependencies":[]},{"name":"flutter_native_contact_picker","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_reactive_ble","dependencies":["reactive_ble_mobile"]},{"name":"flutter_sound","dependencies":["path_provider","flutter_sound_web"]},{"name":"flutter_sound_web","dependencies":[]},{"name":"fluttertoast","dependencies":[]},{"name":"g711_flutter","dependencies":[]},{"name":"google_maps_flutter","dependencies":["google_maps_flutter_android","google_maps_flutter_ios","google_maps_flutter_web"]},{"name":"google_maps_flutter_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"google_maps_flutter_ios","dependencies":[]},{"name":"google_maps_flutter_web","dependencies":[]},{"name":"image_gallery_saver","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"just_audio","dependencies":["just_audio_web","audio_session","path_provider"]},{"name":"just_audio_web","dependencies":[]},{"name":"network_info_plus","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"reactive_ble_mobile","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2023-12-22 15:43:01.891206","version":"3.10.6"} \ No newline at end of file diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index bc49eb75..607f2c4d 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -633,8 +633,7 @@ class LockDetailLogic extends BaseGetXController{ print("有蓝牙权限开始扫描"); startScanAction(); }else{ - getMicrophonePermission() - .then((value) { + getMicrophonePermission().then((value) { if (value) { // 有权限 print("有蓝牙权限开始扫描"); diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 02bfbd1f..c7c2e56e 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -65,6 +65,7 @@ class _LockDetailPageState extends State with TickerProviderStat var saveSignKeyList = changeIntListToStringList(signKeyData); Storage.setStringList(saveBlueSignKey, saveSignKeyList); + Storage.setStringList(saveBlueToken, [0, 0, 0, 0]); // logic.startScanAction(); listeningAnimations(); diff --git a/star_lock/lib/talk/call/callTalk.dart b/star_lock/lib/talk/call/callTalk.dart index cbea16c6..bdb03db9 100644 --- a/star_lock/lib/talk/call/callTalk.dart +++ b/star_lock/lib/talk/call/callTalk.dart @@ -28,7 +28,7 @@ class CallTalk { var growableList; bool getFirstFrame = false; //是否得到了第一帧 final FlutterSoundPlayer _audioPlayer = FlutterSoundPlayer(); - Uint8List? allPcmData = Uint8List(0); + List? allPcmData = []; CallTalk._init() { iframe = IframeInfo(); @@ -58,11 +58,14 @@ class CallTalk { print('dinglingling bb.length:${g711Data.length} 音频数据来:$g711Data '); Uint8List? pcmBytes = await G711().decodeG711ToPCM(g711Data.toList()); + allPcmData!.addAll(pcmBytes!); + await Future.delayed(const Duration(seconds: 1)); + print('PCM decoded data: $pcmBytes'); if (pcmBytes != null) { _initializeAudioPlayer(); - _playRawData(pcmBytes); + _playRawData(Uint8List.fromList(allPcmData!)); } else { print('Error decoding G.711 to PCM'); } @@ -163,4 +166,8 @@ class CallTalk { }, ); } + + Future stopLocalAudio() async { + await _audioPlayer.stopPlayer(); + } } diff --git a/star_lock/lib/talk/udp/udp_reciverData.dart b/star_lock/lib/talk/udp/udp_reciverData.dart index 52c1e380..9fea6034 100644 --- a/star_lock/lib/talk/udp/udp_reciverData.dart +++ b/star_lock/lib/talk/udp/udp_reciverData.dart @@ -19,7 +19,7 @@ class CommandUDPReciverManager { if (dataSize < 4) { return; } - // print("appReceiveUDPData:$data"); + print("appReceiveUDPData:$data"); Uint8List data1 = Uint8List.fromList(data); if (data1.length == 1) {