Changeset 138 for trunk/Utilities/Miscellaneous/PlayMp3File
- Timestamp:
- Oct 16, 2012, 12:32:20 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Utilities/Miscellaneous/PlayMp3File/PlayMp3File.cpp
r133 r138 12 12 #pragma comment(lib, "strmiids.lib") 13 13 14 #define V(x) ATLVERIFY(SUCCEEDED(x)) 15 14 16 int _tmain(int argc, _TCHAR* argv[]) 15 17 { 16 18 static LPCTSTR g_pszPath = _T("F:\\Music\\Cher - Walking In Memphis.mp3"); 17 ATLVERIFY(SUCCEEDED(CoInitialize(NULL)));19 V(CoInitialize(NULL)); 18 20 { 19 21 CComPtr<IGraphBuilder> pGraphBuilder; 20 ATLVERIFY(SUCCEEDED(pGraphBuilder.CoCreateInstance(CLSID_FilterGraph)));22 V(pGraphBuilder.CoCreateInstance(CLSID_FilterGraph)); 21 23 // NOTE: A simpler version is good for the files you are sure of that they don't have too much of ID3 tags on the header: 22 24 // with a large headers the files might be rejected; the longer versions takes all .MP3 files 23 25 #if TRUE 24 26 CComPtr<IBaseFilter> pBaseFilter; 25 ATLVERIFY(SUCCEEDED(pBaseFilter.CoCreateInstance(CLSID_WMAsfReader)));27 V(pBaseFilter.CoCreateInstance(CLSID_WMAsfReader)); 26 28 CComQIPtr<IFileSourceFilter> pFileSourceFilter = pBaseFilter; 27 29 ATLASSERT(pFileSourceFilter); 28 ATLVERIFY(SUCCEEDED(pFileSourceFilter->Load(CT2COLE(g_pszPath), NULL)));29 ATLVERIFY(SUCCEEDED(pGraphBuilder->AddFilter(pBaseFilter, NULL)));30 V(pFileSourceFilter->Load(CT2COLE(g_pszPath), NULL)); 31 V(pGraphBuilder->AddFilter(pBaseFilter, NULL)); 30 32 CComPtr<IEnumPins> pEnumPins; 31 ATLVERIFY(SUCCEEDED(pBaseFilter->EnumPins(&pEnumPins)));33 V(pBaseFilter->EnumPins(&pEnumPins)); 32 34 CComPtr<IPin> pPin; 33 35 ATLVERIFY(pEnumPins->Next(1, &pPin, NULL) == S_OK); 34 ATLVERIFY(SUCCEEDED(pGraphBuilder->Render(pPin)));36 V(pGraphBuilder->Render(pPin)); 35 37 #else 36 ATLVERIFY(SUCCEEDED(pGraphBuilder->RenderFile(CT2CW(g_pszPath), NULL)));38 V(pGraphBuilder->RenderFile(CT2CW(g_pszPath), NULL))); 37 39 #endif 38 40 CComQIPtr<IMediaControl> pMediaControl = pGraphBuilder; 39 41 CComQIPtr<IMediaEvent> pMediaEvent = pGraphBuilder; 40 42 ATLASSERT(pMediaControl && pMediaEvent); 41 ATLVERIFY(SUCCEEDED(pMediaControl->Run()));43 V(pMediaControl->Run()); 42 44 LONG nEventCode = 0; 43 ATLVERIFY(SUCCEEDED(pMediaEvent->WaitForCompletion(INFINITE, &nEventCode)));45 V(pMediaEvent->WaitForCompletion(INFINITE, &nEventCode)); 44 46 } 45 47 CoUninitialize();
Note: See TracChangeset
for help on using the changeset viewer.