1.1.0版本

This commit is contained in:
xinzhu.yin
2026-04-16 16:51:05 +08:00
commit c157e774e5
333 changed files with 70759 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
from UniTAP.dev.modules.capturer.result_object import ResultObject
from UniTAP.common.audio_mode import AudioMode, AudioFileFormat
from UniTAP.dev.ports.modules.ag.ag_utils import save_to_bin_file, save_to_wave_file
import warnings
class ResultAudioObject(ResultObject):
"""
Class `ResultAudioObject` inherited from class `ResultObject`.
Class `ResultAudioObject` allows saving captured frames to image `save_image_to_file`.
Also has all the `ResultObject` functionality.
"""
def __init__(self):
super().__init__()
self.__audio_mode = AudioMode()
@property
def audio_mode(self) -> AudioMode:
"""
Returns current audio mode for captured audio frames.
Returns:
object of `AudioMode` type
"""
return self.__audio_mode
def save_to_file(self, file_format: AudioFileFormat, path: str):
"""
Saving audio frames to file. Supported file formats describe in `AudioFileFormat`.
Args:
file_format (`AudioFileFormat`) - file format
path (str) - path to save
"""
if len(self.buffer) > 0:
if file_format == AudioFileFormat.BIN:
save_to_bin_file(path=path, data=self.__convert_buffer())
elif file_format == AudioFileFormat.WAV:
save_to_wave_file(path=path, audio_mode=self.audio_mode, data=self.__convert_buffer())
else:
raise ValueError(f"Incorrect audio format. Available formats: "
f"{AudioFileFormat.BIN.name}, {AudioFileFormat.WAV.name}.\n"
f"Transferred audio format: {file_format.name}")
else:
warnings.warn("Buffer size is equal 0.")
def __convert_buffer(self):
data = []
for audio_frame in self.buffer:
data.append(audio_frame.data)
return bytearray().join(data)
def __str__(self):
return f"Start capture time: {self.start_capture_time}\n" \
f"End capture time: {self.end_capture_time}\n" \
f"Timestamp: {self.timestamp.__str__()}\n" \
f"Audio mode:\n{self.audio_mode.__str__()}\n"