mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02: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.form.interrupt_audio.setChecked(self.mw.pm.interrupt_audio())
|
||||||
self._recording_drivers = [
|
self._recording_drivers = [
|
||||||
RecordingDriver.QtAudioInput,
|
RecordingDriver.QtAudioInput,
|
||||||
RecordingDriver.QtRecorder,
|
|
||||||
RecordingDriver.PyAudio,
|
RecordingDriver.PyAudio,
|
||||||
]
|
]
|
||||||
# fixme: i18n
|
# fixme: i18n
|
||||||
|
|
|
@ -33,9 +33,8 @@ from aqt.utils import TR, locale_dir, showWarning, tr
|
||||||
|
|
||||||
|
|
||||||
class RecordingDriver(Enum):
|
class RecordingDriver(Enum):
|
||||||
QtRecorder = "qtrecorder"
|
PyAudio = "PyAudio"
|
||||||
PyAudio = "pyaudio"
|
QtAudioInput = "Qt"
|
||||||
QtAudioInput = "qtaudioinput"
|
|
||||||
|
|
||||||
|
|
||||||
metaConf = dict(
|
metaConf = dict(
|
||||||
|
@ -641,7 +640,11 @@ create table if not exists profiles
|
||||||
|
|
||||||
def recording_driver(self) -> RecordingDriver:
|
def recording_driver(self) -> RecordingDriver:
|
||||||
if driver := self.profile.get("recordingDriver"):
|
if driver := self.profile.get("recordingDriver"):
|
||||||
return RecordingDriver(driver)
|
try:
|
||||||
|
return RecordingDriver(driver)
|
||||||
|
except ValueError:
|
||||||
|
# revert to default
|
||||||
|
pass
|
||||||
return RecordingDriver.QtAudioInput
|
return RecordingDriver.QtAudioInput
|
||||||
|
|
||||||
def set_recording_driver(self, driver: RecordingDriver):
|
def set_recording_driver(self, driver: RecordingDriver):
|
||||||
|
|
|
@ -521,44 +521,6 @@ class Recorder(ABC):
|
||||||
pass
|
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
|
# QAudioInput recording
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
|
@ -770,9 +732,7 @@ class RecordDialog(QDialog):
|
||||||
|
|
||||||
def _start_recording(self):
|
def _start_recording(self):
|
||||||
driver = self.mw.pm.recording_driver()
|
driver = self.mw.pm.recording_driver()
|
||||||
if driver is RecordingDriver.QtRecorder:
|
if driver is RecordingDriver.PyAudio:
|
||||||
self._recorder = QtRecorder(namedtmp("rec.wav"), self._parent)
|
|
||||||
elif driver is RecordingDriver.PyAudio:
|
|
||||||
self._recorder = PyAudioRecorder(self.mw, namedtmp("rec.wav"))
|
self._recorder = PyAudioRecorder(self.mw, namedtmp("rec.wav"))
|
||||||
elif driver is RecordingDriver.QtAudioInput:
|
elif driver is RecordingDriver.QtAudioInput:
|
||||||
self._recorder = QtAudioInputRecorder(
|
self._recorder = QtAudioInputRecorder(
|
||||||
|
|
Loading…
Reference in a new issue