⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avi_mp3.h

📁 一个本人学习期间写的播放音乐的代码,希望大家有用
💻 H
字号:
// Avi_Mp3.h: interface for the CAvi_Mp3 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_AVI_MP3_H__A227FA67_BE2B_4A08_A939_9FE65996C5F2__INCLUDED_)
#define AFX_AVI_MP3_H__A227FA67_BE2B_4A08_A939_9FE65996C5F2__INCLUDED_
#include <dshow.h>
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment (lib,"dxguid.lib")
#pragma comment (lib,"strmiids.lib")
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CAvi_Mp3  
{
protected:
	IVideoWindow*	m_pVM; //视频流播放窗口
	IMediaEvent*	m_pEvent;//流媒体触发的事件
	int				m_Media;

public:
	IMediaPosition* m_pMediaPosition;//	视频流播放位置
	IMediaControl*	m_pMediaControl; //	视频流播放控制器
	IGraphBuilder*	m_pGraph; //视频流播放图像过滤器
	CAvi_Mp3();//传入1or2有效,
	void InitMp3();
	void InitAvi();
	LRESULT PlayInFullScreen(HWND hWnd);//全屏播放,一般用于播放avi。使用时需传入窗口句柄。

	LRESULT PlayMedia(const char* szMediaFileName);//确定需要播放的文件。传入字符型路径名。初始化时调用。
	LRESULT Pause()//暂停播放,一般用于播放mp3
	{
		if( m_pMediaControl ) return m_pMediaControl->Pause(); 
		else return E_FAIL; 
	}	
	LRESULT AVI_WaitCompletion(long a=INFINITE)//等候响应事件,一般用于播放avi。使用时需传入一个长整形,确定播放停止的时间用毫秒表示。
	{
		long evCode;
		if( m_pEvent )
		{
			m_pEvent->WaitForCompletion(a,&evCode);
			return S_OK;
		}
		else return E_FAIL; 

	}
	LRESULT Run()//播放流媒体。
	{
		if( m_pMediaControl ) return m_pMediaControl->Run(); 
		else return E_FAIL; 

	}
	virtual ~CAvi_Mp3();

};

#endif // !defined(AFX_AVI_MP3_H__A227FA67_BE2B_4A08_A939_9FE65996C5F2__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -