출처 / 의견 :
Direct show 참고용 소스
- C:\install_sdk\DX90BSDK\Samples\C++\DirectShow\Players\Jukebox
- C:\install_sdk\DX90BSDK\Samples\C++\DirectShow\Players\BGMusic
- D:\cd\DirectX 8.1 SDK\DXSDK\samples\Multimedia\DirectShow\Players\bgmusic
http://glintist.egloos.com/tag/IBasicAudio/page/1 : 로그 값을 선형적으로 변하게 잘 만들었다.
주의점(위의 내용을 참조하여 구현시 내 경험을 적어 본다)
- 최대 값에 도달하는 것을 조정할 필요 있음(1.1 => 1.065 => ? 1.01)
- pow(1.1,100)을 미리 계산해서 define해서 사용하여 퍼포먼스 향상 시키자!
- 완변하게 적용되지 않을시 고려사항 : WaveOutSetVolume()
- 스테레오시 왼쪽, 오른쪽 스피커 고려하자 : put_Balance() < -10,000 오른쪽 ~ 10,000 왼쪽> 0이면 좌우 풀 사운드
- 볼륨 멤버변수가 아닌 get_Volume()함수를 통해 값 변화를 적용된 것으로 이용해 보는 방법
(이게 원인이라면 버튼 키를 천천히 혹은 빨리 누를시 차이가 날 것이다.)
http://msdn.microsoft.com/en-us/library/dd389532(VS.85).aspx : 관련 MSDN
http://cafe.naver.com/ArticleRead.nhn?clubid=17951953&articleid=66 : C# directshow volume control
http://www.geekpage.jp/en/programming/directshow/audio-volume-balance.php : 아래 예제 소스
Direct show 참고용 소스
- C:\install_sdk\DX90BSDK\Samples\C++\DirectShow\Players\Jukebox
- C:\install_sdk\DX90BSDK\Samples\C++\DirectShow\Players\BGMusic
- D:\cd\DirectX 8.1 SDK\DXSDK\samples\Multimedia\DirectShow\Players\bgmusic
http://glintist.egloos.com/tag/IBasicAudio/page/1 : 로그 값을 선형적으로 변하게 잘 만들었다.
주의점(위의 내용을 참조하여 구현시 내 경험을 적어 본다)
- 최대 값에 도달하는 것을 조정할 필요 있음(1.1 => 1.065 => ? 1.01)
- pow(1.1,100)을 미리 계산해서 define해서 사용하여 퍼포먼스 향상 시키자!
- 완변하게 적용되지 않을시 고려사항 : WaveOutSetVolume()
- 스테레오시 왼쪽, 오른쪽 스피커 고려하자 : put_Balance() < -10,000 오른쪽 ~ 10,000 왼쪽> 0이면 좌우 풀 사운드
- 볼륨 멤버변수가 아닌 get_Volume()함수를 통해 값 변화를 적용된 것으로 이용해 보는 방법
(이게 원인이라면 버튼 키를 천천히 혹은 빨리 누를시 차이가 날 것이다.)
http://msdn.microsoft.com/en-us/library/dd389532(VS.85).aspx : 관련 MSDN
http://cafe.naver.com/ArticleRead.nhn?clubid=17951953&articleid=66 : C# directshow volume control
http://www.geekpage.jp/en/programming/directshow/audio-volume-balance.php : 아래 예제 소스
| #include <stdio.h> #include <dshow.h> // change here #define FILENAME L"C:\\DXSDK\\Samples\\Media\\piano2.mp3" int main() { IGraphBuilder *pGraphBuilder; IMediaControl *pMediaControl; IBasicAudio *pBasicAudio; CoInitialize(NULL); CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (LPVOID *)&pGraphBuilder); pGraphBuilder->QueryInterface(IID_IMediaControl, (LPVOID *)&pMediaControl); pGraphBuilder->QueryInterface(IID_IBasicAudio, (LPVOID *)&pBasicAudio); pMediaControl->RenderFile(FILENAME); /* You can change balance using put_Balance(). The value can be between -10000 to 10000. -10000 will turn off the right side. On the other hand, 10000 will turn off the left side. This sample sets "0", which means the same value for left and right. */ pBasicAudio->put_Balance(0); /* You can change volume using put_Volume(). The allowed values are -10000 to 0. The loudest value is "0". -10000 is silence. This value will be 100 times of dB. For example, -5000 will be -50dB. */ pBasicAudio->put_Volume(-500); pMediaControl->Run(); MessageBox(NULL, "Block Execution", "Block", MB_OK); pMediaControl->Release(); pGraphBuilder->Release(); pBasicAudio->Release(); CoUninitialize(); return 0; } |
'R&D IT' 카테고리의 다른 글
| Directshow Video Renderer : (0) | 2009/10/26 |
|---|---|
| DirectShow SampleGrabber(ICaptureGraphBuilder2, ISampleGrabber) (0) | 2009/10/22 |
| Directshow : IBasicAudio Volume (0) | 2009/10/22 |
| vs 6.0 / vs 2005 map 파일 및 cod 파일(요약본) (0) | 2009/10/13 |
| Blog Track back : 원격 댓글, 먼글, 엮인 글 (0) | 2009/10/12 |
| DirectFB Intro (0) | 2009/10/05 |