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