검색결과 리스트
글
간단한 MP3 만들기
개발 이야기/DirectShow
2015. 6. 30. 18:12
=======================================================
준비물.LAV Filter -> https://code.google.com/p/lavfilters/downloads/list
=======================================================
1. 기본 메크로 등록.
사용 여부는 알아서...
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 | #define CHECK_HR(hr, val) { hr = (val); if(FAILED(hr)) { goto done; } } HRESULT DShowPlayer::InitializeGraph() { HRESULT hRet = E_FAIL; . . . CHECK_HR(hRet, CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_pGB)); . . . return S_OK; done: return E_FAIL; } | cs |
필자는 이런식으로 사용...
2. 소스작성
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 | HRESULT YourFunction() { HRESULT hRet = E_FAIL; CHECK_HR(hRet, CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_pGB)); CHECK_HR(hRet, m_pGB->QueryInterface(IID_IMediaControl, (void**)&m_pMC)); IBaseFilter *pSourceFilter = NULL; CHECK_HR(hRet, m_pGB->AddSourceFilter(m_strFilePath, NULL, &pSourceFilter)); if (pSourceFilter != NULL){ CHECK_HR(hRet, m_pGB->RenderFile(m_strFilePath, NULL)); } SAFE_RELEASE(pSourceFilter); if (m_pMC != NULL){ CHECK_HR(hRet, m_pMC->Run()); } return S_OK; done: return E_FAIL; } | cs |
끝!
무진장 간단하다!
'개발 이야기 > DirectShow' 카테고리의 다른 글
[COM] Create GUID (0) | 2015.06.17 |
---|