QT에서 멀티미디어중 오디오 출력에 관련한 설명이다. 

     

    GUI를 개발할 때 사용자에게 어떠한 노티를 주기위해서 다양한 방법이 사용된다. 

     

    위젯 깜빡임, 화면 깜빡임과 소리이다. 

     

    일반적으로 사용자가 버튼을 누른경우 특정 소리를 출력해야 할 필요가 있을 수 있다. 

     

    아날로그 버튼과는 다르게 터치를 통해서 눌렀을 때, 사용자가 눌렀음을 인지해야 하기 때문이다. 

     

    QT에서는 여러가지 멀티미디어를 지원하는데 이를 제어하기 위해서 QMediaPlayer를 사용할 수 있다. 

     

     

    1. 메인 위젯 만들기

    프로젝트를 하나 생성한다음 메인위젯을 만들어주고 라벨 하나 넣고, 버튼 3개만으로 구성 하였다. 

     

    구성된 내용은 아래와 같다. 

     

    버튼을 누르면 기존 재생되던 소리는 꺼주고 재생해야지요?

    필자가 인터넷에서 샘플 mp3를 다운로드 받고, 윈도우에 내장된 사운드중 wav 파일을 하나 선정해서 생성된

     

    프로젝트 폴더 아래에 넣어두었다. (사실 mp3는 여러개 넣어두었고, 출처는 txt 파일로 표시하였다.)

     

     

    2. 오디오 설정

    우선 라즈베리파이의 Audio Jack에 스피커를 연결한다. 그리고 화면 우측 스피커 아이콘에서 마우스 우측클릭을 하여

     

    출력설정을 하여야 한다. 우리는 모니터를 HDMI케이블을 이용하고 있는데, HDMI 케이블은 영상과 오디오를 모두 전송

     

    하므로 스피커로 출력하기 위해서 반드시 설정해주어야 하며, 마우스 왼쪽 클릭으로 볼륨도 적당히 설정한다. 

     

    오디오 출력 설정 (마우스 우측클릭)

     

    3. 소스 수정

    소스에서는 다음과 같이 처리해주자.

     

    우선 프로젝트 파일에서 두줄을 추가하여야 한다.

     

    아래 그림에서 처럼 QT  += (기존꺼 놔두고) multimedia multimediawidgets을 추가해주자.

     

    그리고 프로젝트의 메인윈도우 헤더에서 m_Media를 등록하여 버튼들이 나누어 쓸수 있도록 해주자.

    QMediaPlayer* m_Media가 추가됨.

     

    MainWindow.cpp에서는 m_Media를 생성하고, 생성자에서 버튼과 이벤트 매서드를 연결해준다.

    이벤트를 연결한다.

     

    다음은 각 이벤트를 처리하기 위핸 매서드를 구현한다. 하나만 보도록 하자. 

    QUrl 말고 리소스로 등록해서 처리해도 된다.

     

    4. 샘플 파일 다운로드

    내용 전체를 설명하였지만, 사실 별 내용이 없어서....;;; 

     

    작성된 소스를 첨부하였으니, 직접 코딩하던지 아니면 다운로드 받아서 이해하고 사용하도록 하자. 

     

    필자는 가능한한 소스는 참고하더라도 코드는 직접 입력하는 것을 권한다.

     

     

    exAudioPlay.zip
    1.19MB

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기