711音频数据解析

This commit is contained in:
Daisy 2023-12-18 16:03:44 +08:00
parent 4a131c88f5
commit 4f5e95ce00

View File

@ -1,6 +1,8 @@
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:convert/convert.dart'; import 'package:convert/convert.dart';
import 'package:flutter_sound/flutter_sound.dart'; import 'package:flutter_sound/flutter_sound.dart';
import 'package:get/get.dart';
import 'package:star_lock/appRouters.dart';
// import 'package:just_audio/just_audio.dart'; // import 'package:just_audio/just_audio.dart';
import 'package:star_lock/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart'; import 'package:star_lock/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart';
import 'package:star_lock/talk/call/g711Decoder.dart'; import 'package:star_lock/talk/call/g711Decoder.dart';
@ -19,7 +21,7 @@ class CallTalk {
int status = 0; // int status = 0; //
IframeInfo iframe = IframeInfo(); // IframeInfo iframe = IframeInfo(); //
LockMonitoringPage callOut = const LockMonitoringPage(); LockMonitoringPage callOut = const LockMonitoringPage();
late FlutterSoundPlayer _player; FlutterSoundPlayer _audioPlayer = FlutterSoundPlayer();
Future<void> getAVData(Uint8List bb, int len) async { Future<void> getAVData(Uint8List bb, int len) async {
// //
@ -34,13 +36,12 @@ class CallTalk {
// //
if (bb[61] == 1) { if (bb[61] == 1) {
// //
_player = FlutterSoundPlayer();
_initPlayer();
// _initializeAudioPlayer();
Uint8List g711Data = G711Decoder().decodeG711uLaw(bb);
await _playAudio(g711Data); // 711Uint8List
Uint8List rawData = G711Decoder().decodeG711uLaw(bb);
_playRawData(rawData);
} }
// //
else { else {
@ -74,6 +75,8 @@ class CallTalk {
Uint8List data = iframe.bb!.sublist(0, iframe.cur_len); Uint8List data = iframe.bb!.sublist(0, iframe.cur_len);
Get.toNamed(Routers.lockMonitoringPage,
arguments: {"lockId": widget.lockListInfoItemEntity.lockId});
// //
print(iframe.bb); print(iframe.bb);
} }
@ -98,14 +101,18 @@ class CallTalk {
} }
} }
Future<void> _initPlayer() async { Future<void> _initializeAudioPlayer() async {
await _player.openPlayer(); await _audioPlayer.openPlayer();
} }
Future<void> _playAudio(Uint8List audioData) async { Future<void> _playRawData(Uint8List rawData) async {
await _player.startPlayer( await _audioPlayer.startPlayer(
fromDataBuffer: audioData, fromDataBuffer: rawData,
codec: Codec.pcm16WAV, codec: Codec.pcm16,
whenFinished: () {
//
print("Playback finished");
},
); );
} }
} }