WinCE 下播放MP3代码

本文介绍如何使用DirectShow库在C++中播放MP3文件。通过创建FilterGraphManager和连接所需过滤器来实现播放功能,并在播放完成后停止并释放资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//我成功运行过的代码:


#include "stdafx.h"
#include <dshow.h>
#include <streams.h>

#pragma comment (lib,"Ole32.lib")
#pragma comment (lib,"Strmiids.lib")

void TestMP3(void);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
TestMP3();
return 0;
}
void TestMP3()
{
IGraphBuilder *pGraph;
/* 指向Filter Graph的指针 */
IMediaControl *pMediaControl;
/* 指向MediaControl对象的指针 */
/* 初始化,程序启动时执行一次即可 */
CoInitialize(NULL);
/**************************************************************************/
/* 以下程序每次播放MP3(或其他格式)文件时调用 */
/* 创建一个Filter Graph manager */
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
/* 连接播放指定文件所需的filter */
pGraph->RenderFile(L"//test.mp3", NULL);
/* 开始播放指定的文件 */
pMediaControl->Run();
/* 文件的播放在DirectShow中独立线程中进行,此处等待 */
MessageBox(NULL, L"点击[OK]结束播放", L"Play MP3", MB_OK);
pMediaControl->Stop();
/* 停止播放 */
pMediaControl->Release();
/* 释放对象 */
pGraph->Release();
/**************************************************************************/
/* 程序结束时调用 */
CoUninitialize();
}


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/norains/archive/2006/02/25/609227.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值