資源簡介
自己做的FFPLAY移植到VC下的開源工程:ffplay for MFC。
本工程將ffmpeg項目中的ffplay播放器(ffplay.c)移植到了VC的環(huán)境下。并且使用MFC做了一套簡單的界面。它可以完成一個播放器播放視頻的基本流程:解協(xié)議,解封裝,視頻/音頻解碼,視音頻同步,視音頻輸出。此外還包含一些控制功能:播放,暫停/繼續(xù),前進,后退,停止,逐幀播放,全屏等功能。通過本程序可以學(xué)習(xí)視頻播放器原理,以及SDL和Windows消息機制等。代碼中包含了比較詳細的注釋。
代碼片段和文件信息
/*?
?*?FFplay?for?MFC
?*
?*?雷霄驊?Lei?Xiaohua
?*?leixiaohua1020@126.com
?*?中國傳媒大學(xué)/數(shù)字電視技術(shù)
?*?Communication?University?of?China?/?Digital?TV?Technology
?*
?*?http://blog.csdn.net/leixiaohua1020
?*?
?*?本工程將ffmpeg項目中的ffplay播放器(ffplay.c)移植到了VC的環(huán)境下。
?*?并且使用MFC做了一套簡單的界面。
?*?This?software?transplant?ffplay?to?Microsoft?VC++?environment.?
?*?And?use?MFC?to?build?a?simple?Graphical?User?Interface.?
?*/
#include?“stdafx.h“
#include?“ffplaymfc.h“
#include?“AudiodecodeDlg.h“
#include?“afxdialogex.h“
//?AudiodecodeDlg?對話框
IMPLEMENT_DYNAMIC(AudiodecodeDlg?CDialogEx)
AudiodecodeDlg::AudiodecodeDlg(CWnd*?pParent?/*=NULL*/)
:?CDialogEx(AudiodecodeDlg::IDD?pParent)
{
}
AudiodecodeDlg::~AudiodecodeDlg()
{
}
void?AudiodecodeDlg::DoDataExchange(CDataExchange*?pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX?IDC_AUDIODECODE_LIST?m_audiodecodelist);
}
BEGIN_MESSAGE_MAP(AudiodecodeDlg?CDialogEx)
END_MESSAGE_MAP()
BOOL?AudiodecodeDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
//整行選擇;有表格線;表頭;單擊激活
DWORD?dwExstyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE;
//多國語言支持
CString?resloader;
resloader.LoadString(IDS_AUDIODECODE);
SetWindowText(resloader);
m_audiodecodelist.Modifystyle(0LVS_SINGLESEL|LVS_REPORT|LVS_SHOWSELALWAYS);
m_audiodecodelist.SetExtendedstyle(dwExstyle);
resloader.LoadString(IDS_AUDIODECODE_NUM);
m_audiodecodelist.InsertColumn(0resloaderLVCFMT_CENTER500);
resloader.LoadString(IDS_AUDIODECODE_SIZE);
m_audiodecodelist.InsertColumn(1resloaderLVCFMT_CENTER500);
resloader.LoadString(IDS_AUDIODECODE_PTS);
m_audiodecodelist.InsertColumn(2resloaderLVCFMT_CENTER500);
resloader.LoadString(IDS_AUDIODECODE_DTS);
m_audiodecodelist.InsertColumn(3resloaderLVCFMT_CENTER500);
return?TRUE;
}
評論
共有 條評論