mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
drop QtRecorder driver; rename existing
This commit is contained in:
parent
4c6e87ac87
commit
019a65efc1
3 changed files with 8 additions and 46 deletions
|
@ -223,7 +223,6 @@ class Preferences(QDialog):
|
|||
self.form.interrupt_audio.setChecked(self.mw.pm.interrupt_audio())
|
||||
self._recording_drivers = [
|
||||
RecordingDriver.QtAudioInput,
|
||||
RecordingDriver.QtRecorder,
|
||||
RecordingDriver.PyAudio,
|
||||
]
|
||||
# fixme: i18n
|
||||
|
|
|
@ -33,9 +33,8 @@ from aqt.utils import TR, locale_dir, showWarning, tr
|
|||
|
||||
|
||||
class RecordingDriver(Enum):
|
||||
QtRecorder = "qtrecorder"
|
||||
PyAudio = "pyaudio"
|
||||
QtAudioInput = "qtaudioinput"
|
||||
PyAudio = "PyAudio"
|
||||
QtAudioInput = "Qt"
|
||||
|
||||
|
||||
metaConf = dict(
|
||||
|
@ -641,7 +640,11 @@ create table if not exists profiles
|
|||
|
||||
def recording_driver(self) -> RecordingDriver:
|
||||
if driver := self.profile.get("recordingDriver"):
|
||||
return RecordingDriver(driver)
|
||||
try:
|
||||
return RecordingDriver(driver)
|
||||
except ValueError:
|
||||
# revert to default
|
||||
pass
|
||||
return RecordingDriver.QtAudioInput
|
||||
|
||||
def set_recording_driver(self, driver: RecordingDriver):
|
||||
|
|
|
@ -521,44 +521,6 @@ class Recorder(ABC):
|
|||
pass
|
||||
|
||||
|
||||
# Qt recording
|
||||
##########################################################################
|
||||
|
||||
|
||||
class QtRecorder(Recorder):
|
||||
def __init__(self, output_path: str, parent: QWidget):
|
||||
super().__init__(output_path)
|
||||
|
||||
from PyQt5.QtMultimedia import QAudioRecorder
|
||||
|
||||
self._recorder = QAudioRecorder(parent)
|
||||
audio = self._recorder.audioSettings()
|
||||
audio.setSampleRate(44100)
|
||||
audio.setChannelCount(1)
|
||||
self._recorder.setEncodingSettings(
|
||||
audio,
|
||||
self._recorder.videoSettings(),
|
||||
"audio/x-wav",
|
||||
)
|
||||
self._recorder.setOutputLocation(QUrl.fromLocalFile(self.output_path))
|
||||
self._recorder.setMuted(True)
|
||||
|
||||
def start(self, on_done: Callable[[], None]) -> None:
|
||||
self._recorder.record()
|
||||
super().start(on_done)
|
||||
|
||||
def stop(self, on_done: Callable[[str], None]):
|
||||
self._recorder.stop()
|
||||
super().stop(on_done)
|
||||
|
||||
def on_timer(self):
|
||||
duration = self._recorder.duration()
|
||||
if duration >= 300:
|
||||
# disable mute after recording starts to avoid clicks/pops
|
||||
if self._recorder.isMuted():
|
||||
self._recorder.setMuted(False)
|
||||
|
||||
|
||||
# QAudioInput recording
|
||||
##########################################################################
|
||||
|
||||
|
@ -770,9 +732,7 @@ class RecordDialog(QDialog):
|
|||
|
||||
def _start_recording(self):
|
||||
driver = self.mw.pm.recording_driver()
|
||||
if driver is RecordingDriver.QtRecorder:
|
||||
self._recorder = QtRecorder(namedtmp("rec.wav"), self._parent)
|
||||
elif driver is RecordingDriver.PyAudio:
|
||||
if driver is RecordingDriver.PyAudio:
|
||||
self._recorder = PyAudioRecorder(self.mw, namedtmp("rec.wav"))
|
||||
elif driver is RecordingDriver.QtAudioInput:
|
||||
self._recorder = QtAudioInputRecorder(
|
||||
|
|
Loading…
Reference in a new issue