포논 (소프트웨어)

포논(Phonon)은 KDE에서 제공하는 멀티미디어 API이며, KDE 소프트웨어 내에서 멀티미디어 스트림을 처리하기 위한 표준 추상화 계층으로, 여러 Qt 응용 프로그램에서도 사용된다.

포논은 원래 KDE 및 Qt 소프트웨어가 GStreamer 또는 Xine과 같은 단일 멀티미디어 프레임워크에 독립적으로 작동하도록 하고, 주요 버전의 수명 주기 동안 안정적인 API를 제공하기 위해 만들어졌다. 이는 여러 가지 이유로 이루어졌다: 간단한 KDE/Qt 스타일 멀티미디어 API를 생성하기 위해, Windows 및 macOS에서 기본 멀티미디어 프레임워크를 더 잘 지원하기 위해, 그리고 유지 보수되지 않거나 API 또는 ABI 불안정성을 겪는 프레임워크의 문제를 해결하기 위해.

예를 들어, 파일을 C++ 코드 네 줄로 재생할 수 있다. 반면 KDE의 이전 오디오 프레임워크(aRts)에서는 30줄이 필요했다.
Phonon::MediaObject* media = new Phonon::MediaObject(this);
createPath(media, new Phonon::AudioOutput(Phonon::MusicCategory, this));
media->setCurrentSource(QUrl("/tmp/example.wav"));
media->play();
포논은 상상할 수 있는 모든 멀티미디어 기능을 갖도록 설계된 것이 아니라, 컴퓨터 미디어 플레이어의 일반적인 기능을 수행하는 간단한 방법으로 설계되었다. 포논이 제공할 수 있는 것보다 특정 미디어 백엔드에 대한 더 많은 제어가 필요한 개발자는 해당 시스템에서 사용 가능한 기본 미디어 API 또는 GStreamer API를 사용하는 것이 좋다.

 역사 
포논의 아이디어는 2004년 슈투트가르트 근교 루드비히스부르크에서 열린 aKademy에서 aRts를 대체할 새로운 멀티미디어 API를 선택해야 할 때 시작되었다. 합의에 이르지는 못했지만, 몇몇 개발자들이 모여 여러 백엔드를 가진 새로운 프레임워크를 개발하기로 결정했다. 초기 버전은 KDEMM (KDE MultiMedia)이라고 불렸으며 JuK와 Amarok에서만 지원되었다. 마티아스 크레츠는 그의 대학 논문의 일부로 이 프로젝트를 단독으로 계속 진행했고, 프로젝트 이름은 한 번 더 바뀌었지만 2006년 2월에 최종적으로 포논이라는 이름이 선택되었다. 첫 공식 릴리스는 2008년 1월 KDE 4.0의 일부로 이루어졌으며, 같은 해에 포논은 Qt에 채택되어 Qt 4.4의 일부로 릴리스되었다. Qt에서 포논에 대한 지원은 4.x 시리즈에서도 계속되겠지만, Qt는 이미 포논을 QtMultimedia 및 QtMobMobility로 대체했다.

 기능 

 포논은 개발자들이 "엔진"이라고 부르는 다양한 백엔드와 연동하며, 각 엔진은 특정 백엔드와 작동한다. 각 백엔드는 포논이 재생, 일시 정지, 탐색과 같은 기본 기능을 제어하도록 허용한다. 포논은 또한 트랙이 서로 페이드인되는 방식과 같은 더 높은 수준의 기능도 지원한다.
 포논은 멀티미디어 프레임워크를 즉석에서 전환할 수 있다. 사용자는 음악을 듣는 중에도 프레임워크를 전환할 수 있으며, 전환 중에는 약간의 일시 정지만 발생한다. 이 변경은 시스템 전체에 적용되어 포논을 사용하는 모든 응용 프로그램에 영향을 미치므로 프레임워크 변경이 훨씬 쉬워진다.
 Solid를 사용하여 포논은 사용자에게 헤드셋, 스피커, 마이크와 같은 액세서리에 대한 더 큰 제어 권한을 제공한다. 한 가지 예로, VoIP 대화는 헤드셋을 통해서만 재생하고 다른 모든 소리는 스피커를 통해 나오도록 설정할 수 있다.

 백엔드 
 대부분의 유닉스 계열 시스템에서 지원되는 백엔드는 GStreamer 및 VLC이다.
 윈도우에서 지원되는 백엔드는 다이렉트쇼, VLC 및 엠플레이어를 포함한다.
 macOS에서 지원되는 백엔드는 퀵타임이다.
 Xine 및 엠플레이어 백엔드는 리눅스에서 더 이상 개발되지 않으며 사용 중단되었다.

 같이 보기 
 펄스오디오 – 데스크톱 사용을 위한 보편적인 사운드 서버
 잭 오디오 커넥션 키트 – 전문 오디오 제작을 위한 보편적인 사운드 서버

 각주 

 외부 링크 
 포논 홈페이지
 포논 코드 (invent.kde.org 호스팅)

분류:멀티미디어 프레임워크
분류:C++로 작성된 자유 소프트웨어
분류:KDE 플랫폼
분류:KDE 프레임워크