QMediaPlayer, как изменять громкость звука?

Пытаюсь управлять системной громкостью звука.
Ничего дельного для такой задачи не нашел, кроме модуля sound. Импортировал его командой pip install.

А после этого появился интересный момент:

  • если прописать в программе import sound, то все будет в порядке,
  • но при написании from sound import Sound выдает ошибку ImportError: cannot import name 'Sound' from 'sound' <путь>.

Как мне исправить ошибку, ведь я не смог найти других модулей, способных изменять громкость звука?


Ответы (1 шт):

Автор решения: S. Nick

Класс QMediaPlayer позволяет воспроизводить медиаисточник.

volume : int

Это свойство содержит текущую громкость воспроизведения.

Громкость воспроизведения линейно масштабируется в диапазоне от 0 (тишина) до 100 (полная громкость). Значения вне этого диапазона будут ограничены.

import sys
from PyQt5.Qt import QUrl, Qt
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QPushButton, QGridLayout


class Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.player = QMediaPlayer(self)
        
        self.volumeslider = QSlider(Qt.Horizontal)
        self.volumeslider.setFocusPolicy(Qt.NoFocus)
        self.volumeslider.valueChanged[int].connect(self.change_volume)
        self.volumeslider.setValue(100)
        self.volume = self.volumeslider.value()

        play_btn  = QPushButton('Play')   
        play_btn.clicked.connect(self.playMedia)
        pause_btn = QPushButton('Pause')  
        pause_btn.clicked.connect(self.pauseMedia)
        stop_btn  = QPushButton('Stop')   
        stop_btn.clicked.connect(self.stopMedia)
        
        layout = QGridLayout(self)
        layout.addWidget(play_btn, 0, 0)
        layout.addWidget(pause_btn, 0, 1)
        layout.addWidget(stop_btn, 0, 2)
        layout.addWidget(self.volumeslider, 1, 0, 1, 3)
        
        self.player.setMedia(QMediaContent(QUrl(
            'http://europaplus.hostingradio.ru:8014/ep-top256.mp3'
        )))        
        
        self.player.setVolume(self.volume) 
        self.player.play()        
        
    def change_volume(self, value):
        self.player.setVolume(value)
        
    def playMedia(self):
        self.player.play()  

    def pauseMedia(self):
        self.player.pause()        
        
    def stopMedia(self):
        self.player.stop()  


if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = Demo()
    demo.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка