diff --git a/Sources/pyOpenRPA/Robot/Audio.py b/Sources/pyOpenRPA/Robot/Audio.py index 512e8ddf..a00b5d43 100644 --- a/Sources/pyOpenRPA/Robot/Audio.py +++ b/Sources/pyOpenRPA/Robot/Audio.py @@ -178,7 +178,7 @@ class Recorder: # CHECK AUX.mp3 self.mFileInfoDict = {} self.mFileNameList=[] - self.mRecordedFramesList=[] + #self.mRecordedFramesList=[] self.mStatusStr = "1_RECORDING" if inChunkSecFloat != None: self.mFileAvailableChunkInt = 0 self.mDurationSecFloat = inDurationSecFloat @@ -250,7 +250,7 @@ class Recorder: lCallbackThread.start() - def CaptureChunk(self, inExtra=None, inForceChunkBool=True): + def CaptureChunk(self, inExtra=None, inForceChunkBool=True, inShiftSecFloat = 0.0): """L-,W+: Зафиксировать захват аудио в виде промежуточного файла вида: <имя файла>_00000.mp3 .. code-block:: python @@ -263,6 +263,8 @@ class Recorder: :type inExtra: any, опционально :param inForceChunkBool: True - вне зависимости от текущего режима перейти на режим сохранения по частям, по умолчанию True :type inForceChunkBool: bool, опционально + :param inShiftSecFloat: Последние секунды, которые не записывать в промежуточный аудиофайл. Они будут началом следующего аудио отрывка, по умолчанию 0.0 + :type inShiftSecFloat: float :return: Наименование сохраненного аудиофайла :rtype: str """ @@ -273,10 +275,21 @@ class Recorder: self.mFileAvailableChunkInt = self.mFileAvailableChunkInt + 1 lFileNameWExtStr = f"{lFileNameStr}.{self.mFileFormatStr}" lFilePathStr = os.path.abspath(os.path.join(self.mFolderPathStr,lFileNameWExtStr)) + lDataFrameBytes = b''.join(self.mRecordedFramesList) + if inShiftSecFloat != 0.0: + lFrameLenInt = int(self.mSampleSizeInt*inShiftSecFloat*self.mChannelCountInt*self.mSampleRateInt) + lFrameLenInt = int(lFrameLenInt // (self.mChannelCountInt * self.mSampleSizeInt)) * (self.mChannelCountInt * self.mSampleSizeInt) + if lFrameLenInt