sound meida player windows 에서 프로그램을 짜야 할때 필요한 공부는 무엇이 있을까?

kranian의 이미지

amarok 와 비슷한 프로그램으로
아직 프로젝트 이름은 임시이지만 amarok-clone이란 이름으로 개발할려고 합니다..
아마도 거의 대부분의 현재 amarok에 들어가 있는 기능을 구현하는것을 목표로 삼고있습니다..

하지만 원도우에서 사운드 프로그램과 관련한 지식이 없는 상태나 무언부터 공부할지 모르겠군요..

예를 들어 media-player에서 사운드 볼륭 조절,OSD 기능 구현,재생기능,기타 등등 구현등이 이러한 것들은 구현하기 위해서는 windows에서는 어떻게 해야 하나요?

이려한 meida player 에 대한 구현에 필요한 조언을 부탁드립니다.

thyoo의 이미지

Design Decision
1. Windows가 제공하는 Framework를 사용할 것이냐.
2. Windows의 Framework를 사용한다면 무엇을 사용할 것이냐.

PC에서 Internet/Web 다음으로 중요한 용도는 미디어입니다.
그래서 MS는 (역사적으로) 여러가지 Framework를 제공하고 있읍니다.

1. Windows의 Framework를 사용하지 않는다면
1.1 Audio Driver를 직접 Access (연구 목적이 아니라면 피하는 게 상책, 다른 Application과의 충돌등 복잡한 문제 많음)
1.2 SDL 같은 Wrapper Library 사용 (Cross Platform이라는 장점, DirectX에 해당)

2. Windows의 Framework를 사용
2.1 MMIO* (audio driver wrapper) API (성가신만큼 비교적 저수준 제어가 가능)
2.2 Direct Sound (MMIO보다 편리하고 저수준 제어 가능 단, DirectX Runtime Library를 함께 배포할 필요가 있음)
2.3 Direct Show (배우기가 어렵지만 Windows(WMP)와 함께 배포되는 Codec을 자유로이 사용할 수 있다. 어려워서 세계적으로 하는 사람이 적고 그만큼 자료 찾기가 쉽지 않다. 도전해볼 가치 있음. 필터 개발이면 내부적으로는 DSound나 MMIO를 사용)
2.4 Direct Music (매우 편리한 반면 저수준 제어 불가)
2.5 Windows Media Player SDK (WMP를 제어할 수 있다. Direct Music보다도 고수준 Programmer가 할 수 있는 게 적다. 저수준 제어를 위해 Direct Show Filter를 손봐야할 때가 있음)

얼핏 떠오르는 대로 적어봤습니다.
참고가 됐으면 좋겠군요.
___________________________________
Less is More (Robert Browning)

___________________________________
Less is More (Robert Browning)

kranian의 이미지

좋은정보감사드립니다
멀티미디오 관련되어서 작성 예제 프로그램 이나 책은 없은지요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.