-
[PyQt]QMediaPlayer로 Video Player만들기 (not use Pixmap)Programming/PyQt 2022. 5. 31. 10:53
QPixmap와 OpenCV 함수를 사용하여 비디오 영상을 표시하면 체감상 느려졌기 때문에
QMediaPlayer를 사용해보았는데 생각보다 간편하였다.
(간단하게 비디오를 재생가능하고
play, pause, stop등 기능을 편리하게 사용할 수 있음)
코드는 아래 링크들을 참고하였고
UI에서 (Designer 에서) QWidget으로 먼저 만들고 나서
QVideoWidget으로 승격해주면 된다.(아래 사진 참고, 헤더파일 입력하는 부분!!)
헤더파일은
PyQt5.QtMultimediaWidgets
철자 주의!
그 후에 코드상에서 QMediaplayer함수들 사용가능하다.
QMediaPlayer Class | Qt Multimedia 5.15.9
pyqt5 video widget - Python (pythonprogramminglanguage.com)
PyQt5 Video Player with QMediaPlayer - CodersLegacy
추가적인 팁,
스페이스 바를 사용하여 정지, 재생 토글로 만들기
use space bar,
toggle play or pause
def keyPressEvent(self, event): if event.key() == Qt.Key_Space: print("space") if self.mediaPlayer.state() ==QMediaPlayer.PlayingState: self.mediaPlayer.pause() else: self.mediaPlayer.play()
맨처음에
if (play상태이면)pause해라if (pause상태이면)play해라이런식으로 코드 작성했었는데 작동이 잘 안되서 위처럼 수정했더니 아주 잘 됨.어차피 상태는 play, pause만 있을 것이니 if, else만으로도 충분했음.근데 왜 처음에 작성한 if, if 는 안된 것이었는지 아직 잘 모르겠다!'Programming > PyQt' 카테고리의 다른 글
QMediaPlayer 재생이 안 될 때 해결방법 (0) 2022.06.29 [PyQt] MediaPlayer, GraphicsView Size가 안 맞는 문제 해결 (0) 2022.06.16 [PyQt] QMediaPlayer, QGraphicsView, QGraphicsScene에서 마우스 좌표가 이상한 문제 해결 (mainwindow에서 widget불러오기) (0) 2022.06.07 [PyQt] Python에서 ffmpeg 관련 error 해결 (0) 2022.05.26 PyQt 여러 파일을 열고 ListView에 목록 보여주기 예제(getOpenFileNames) (0) 2022.05.24