달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

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

sudo apt-get install libogg-dev

  • libvorbis-dev 설치

sudo apt-get install libvorbis-dev


이제 GitHub의 코드가 컴파일 될 것이다. 진짜!!!

이렇게 해도 컴파일 에러가 난다. 

GitHub에 있는 코드는 오래된 QT 버전을 사용한 코드인 것 같다. QAudioFormat 클래스의 함수 몇개가 오류가 난다.  첨부되어 있는 소스파일은 수정된 버전이다.

이렇게 바꿔 주면 된다.


이제 컴파일 될 것이며 실행도 될 것이다.


Posted by 생짜
|