QAudioOutput 을 이용해서 PulseAudio로 wav를 출력하고 있었다.
OGG 파일을 출력해야 한다고 한다.
엥? OGG ? [ 위키백과 ]
그냥 audio파일 중 하나겠지 하고 QFile로 open한 다음 버퍼에 데이타를 넣어줬다.
???
아무 소리가 나지 않는다.
언제나 그렇듯 한큐에 되는 것은 아무것도 없다. 제길~~~~
검색을 시작했다.
QT Forum 에 가니 기본적으로 QT Multimedia는 플랫폼 코덱을 사용한다고 한다.
Stack overflow 에 한번 더 가보자, Vorbis용 코덱이 설치되어 있지 않으면 재생할 수 없단다.
이번엔 Vorbis 를 찾아보자. vorbis를 찾다가 GitHub에서 유용한 샘플 코드를 찾았다. 앗싸~~~
바로 다운 받아 컴파일 들어간다.
GitHub 주소 여기고, 코드는 여기 QOggSimplePlayer.tar.gz
GitHub ReadME를 보면 QT Application에서 codec 없이 ogg 파일을 플레이 할 수 있는 소스란다.
자 이제 작업 시작해 보자.
GitHub 소스코드나 첨부되어 있는 코드를 다운받아 컴파일 하면 다음과 같은 header 파일이 없다고 에러가 난다.
우분투에 libogg-dev와 libvorbis-dev가 설치되어 있는지 확인한다.
내 우분투에서는 설치되어 있다고 나온다. 이 글을 쓰기 바로전에 샘플 코드를 돌려보기 위해 설치했다.
설치를 안했다면 OGG 관련 lib-dev를 아래와 같이 설치해야 한다.
- apt-get upddate 저장소 업데이트
sudo apt-get update
- libogg-dev( 링크사이트 ) 설치
sudo apt-get install libogg-dev
- libvorbis-dev 설치
sudo apt-get install libvorbis-dev
이제 GitHub의 코드가 컴파일 될 것이다. 진짜!!!
이렇게 해도 컴파일 에러가 난다.
GitHub에 있는 코드는 오래된 QT 버전을 사용한 코드인 것 같다. QAudioFormat 클래스의 함수 몇개가 오류가 난다. 첨부되어 있는 소스파일은 수정된 버전이다.
이렇게 바꿔 주면 된다.
이제 컴파일 될 것이며 실행도 될 것이다.
'karma( 업 ) > QT&QML Tip' 카테고리의 다른 글
[형변환]char* to QBytearray & QBytearray to char* (1) | 2018.11.27 |
---|---|
QT Creator에서 'Run in terminal' 로 실행 시키기 (0) | 2018.11.07 |
QString & QStringList Empty 초기화 (0) | 2018.06.26 |
QDateTime & QDate & QTime toString 함수 사용 (0) | 2018.06.12 |
QString to char* || char* to QString (0) | 2018.01.10 |