Пример #1
0
    def __init__(self):
        super().__init__()
        self.setLayout(qtw.QGridLayout())
        self.label = qtw.QLabel('No file loaded')
        self.layout().addWidget(self.label, 0, 0, 1, 2)

        self.play_button = PlayButton()
        self.layout().addWidget(self.play_button, 3, 0, 1, 2)

        self.player = qtmm.QMediaPlayer()
        self.play_button.clicked.connect(self.on_playbutton)
        self.player.stateChanged.connect(self.play_button.on_state_changed)

        self.file_button = qtw.QPushButton('Load File')
        self.file_button.clicked.connect(self.get_file)
        self.layout().addWidget(self.file_button, 4, 0)

        self.position = qtw.QSlider()
        self.position.setMinimum(0)
        self.position.setOrientation(qtc.Qt.Horizontal)
        self.layout().addWidget(self.position, 1, 0, 1, 2)

        self.player.positionChanged.connect(self.position.setSliderPosition)
        self.player.durationChanged.connect(self.position.setMaximum)
        self.position.sliderMoved.connect(self.player.setPosition)

        self.loop_cb = qtw.QCheckBox('Loop')
        self.loop_cb.stateChanged.connect(self.on_loop_cb)
        self.layout().addWidget(self.loop_cb, 2, 0)

        self.volume = qtw.QSlider()
        self.volume.setMinimum(0)
        self.volume.setMaximum(100)
        self.volume.setSliderPosition(75)
        self.volume.setOrientation(qtc.Qt.Horizontal)
        self.volume.sliderMoved.connect(self.player.setVolume)
        self.layout().addWidget(self.volume, 2, 1)

        self.recorder = qtmm.QAudioRecorder()
        # self.recorder.setAudioInput('default:')
        # sample_path = qtc.QDir.home().filePath('sample1')
        # self.recorder.setOutputLocation(qtc.QUrl.fromLocalFile(sample_path))
        # self.recorder.setContainerFormat('audio/x-wav')
        # settings = qtmm.QAudioEncoderSettings()
        # settings.setCodec('audio/pcm')
        # settings.setSampleRate(44100)
        # settings.setQuality(qtmm.QMultimedia.HighQuality)
        # self.recorder.setEncodingSettings(settings)

        self.record_button = RecordButton()
        self.recorder.stateChanged.connect(self.record_button.on_state_changed)
        self.layout().addWidget(self.record_button, 4, 1)
        self.record_button.clicked.connect(self.on_recordbutton)
Пример #2
0
 def __init__(self, parent=None, max_allowed_secs=600):
     """
     """
     super().__init__(parent)
     self.setWindowTitle(self.WINDOW_TITLE)
     self.max_allowed_secs = max_allowed_secs
     #
     self.audio_recorder = QtMultimedia.QAudioRecorder(self)
     self.audio_recorder.durationChanged.connect(self.on_duration_changed)
     self.audio_recorder.statusChanged.connect(self.on_status_changed)
     # self.audio_recorder.stateChanged.connect(self.on_state_changed)
     #
     self.audio_probe = QtMultimedia.QAudioProbe(self)
     self.audio_probe.setSource(self.audio_recorder)
     self.audio_probe.audioBufferProbed.connect(self.on_audio_probe)
     #
     self._setup_gui()
     #
     self.vol_s.setValue(100)
     self.result = []
     self.sample_rate = -1