使用PyQt6播放声音



随着PyQt6模块的发布,我已经开始将我的代码从PyQt5移植到PyQt6。

在PyQt中,有一个叫做phonon的模块用来播放声音。

在PyQt5中,有一个名为QMediaPlayer的模块,用于播放声音。

现在,如何在PyQt6中播放声音?

有个网站说QMediaPlayer还没有移植,应该在PyQt6版本PyQt6.2中完成。

网址是- https://www.pythonguis.com/faq/pyqt-pyside6-missing-modules/

该网站还声明PyQt6.2将于2021年9月发布。

是否重命名导入?

需要注意的是:

  • 在Qt6中,如果你想播放音乐文件,那么你有2个选项:

    • QSoundEffect

      import sys
      from PyQt6.QtCore import QUrl
      from PyQt6.QtGui import QGuiApplication
      from PyQt6.QtMultimedia import QSoundEffect
      
      def main():
      app = QGuiApplication(sys.argv)
      filename = "sound.wav"
      effect = QSoundEffect()
      effect.setSource(QUrl.fromLocalFile(filename))
      # possible bug: QSoundEffect::Infinite cannot be used in setLoopCount
      effect.setLoopCount(-2)
      effect.play()
      sys.exit(app.exec())
      
      if __name__ == "__main__":
      main()
      
    • QMediaPlayer .

      import sys
      from PyQt6.QtCore import QUrl
      from PyQt6.QtGui import QGuiApplication
      from PyQt6.QtMultimedia import QAudioOutput, QMediaPlayer
      
      def main():
      app = QGuiApplication(sys.argv)
      filename = "sound.mp3"
      player = QMediaPlayer()
      audio_output = QAudioOutput()
      player.setAudioOutput(audio_output)
      player.setSource(QUrl.fromLocalFile(filename))
      audio_output.setVolume(50)
      player.play()
      sys.exit(app.exec())
      
      if __name__ == "__main__":
      main()
      
  • 之前的类在Qt 6.2中可用,目前PyQt6 6.2.0的pypi中没有可用的版本,但您可以从Riverbank Computing pypi服务器存储库中安装它(查看这里获取更多信息):

    python -m pip install --index-url https://riverbankcomputing.com/pypi/simple/ --pre --upgrade PyQt6
    

    可能几天后它就可以在pypi中使用了

相关内容

  • 没有找到相关文章

最新更新