百科游戏 手游攻略
大家好,今天小编来为大家解答ppplayer这个问题,ppplayer 与pplive很多人还不知道,现在让我们一起来看看吧!
请问谁知道chkenplayer (最小的播放器)的源代码
#include"Main.h"
#include"BasePlayer.h"
#include"MainDlg.h"
#include"LRC.h"
voidFreeBasePlayer(CBasePlayer**ppPlayerControl){
m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].Enable(FALSE);
m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].m_LoadPos=0;
m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].SetPos(0,true);
CBasePlayer*LsPlayer=*ppPlayerControl;
*ppPlayerControl=NULL;
if(LsPlayer){
LsPlayer->m_pPlayItem=&LsPlayer->m_DumpPlayItem;//停止,防止错误,脱离真实列表
LsPlayer->FreeThis();
}
}
voidCBasePlayer::FreeThis(){
//if(m_lpParentWnd)
m_lpParentWnd->KillTimer(-1);
UnHookThis();
m_IsPlay=FALSE;
ChangePlayButton();
m_lpParentWnd=NULL;
//deletethis;
}
CBasePlayer::CBasePlayer(CKWnd*lpParentWnd,CPlayerItem*pPlayItem)
:m_lpParentWnd(lpParentWnd),m_pPlayItem(pPlayItem),
m_DumpPlayItem(pPlayItem->m_Addr,Ken_Str_NULL,Ken_Str_NULL,Ken_Str_NULL){
m_X1000Scale=1000*4/3;
m_hWnd=0;
m_Proc=0;
m_PlayerType=0;
//m_hCursor=NULL;
m_IsPlay=FALSE;
}
#defineWM_THREAD_MSG(WM_USER+0x400)
//voidCBasePlayer::RunPlayerCommand(DWORDCmd,LPARAMParam){}
boolCBasePlayer::OnThread(){returntrue;}
boolCBasePlayer::OnThreadMessage(WPARAMwParam,LPARAMlParam){returnfalse;}
BOOLCBasePlayer::PostThreadMessage(INWPARAMwParam,INLPARAMlParam){
return::PostThreadMessage(m_ThreadId,WM_THREAD_MSG,wParam,lParam);
}
voidCBasePlayer::PostRetMessage(WPARAMwParam,LPARAMlParam){
if(m_lpParentWnd)m_lpParentWnd->PostMessage(WM_PLAYER_MESSAGE,wParam,lParam);
}
staticDWORDWINAPI_ThreadProc(CBasePlayer*lpThis){
MSGm_Msg;
if(lpThis->OnThread())
while(true){
GetMessage(&m_Msg,NULL,WM_THREAD_MSG,WM_THREAD_MSG);//if(m_Msg.hwnd==0)
if(!lpThis->OnThreadMessage(m_Msg.wParam,m_Msg.lParam))break;
}
return0;
}
voidCBasePlayer::StartThread(){
::CloseHandle(::CreateThread(0,0,(LPTHREAD_START_ROUTINE)_ThreadProc,this,0,&m_ThreadId));
}
//voidCBasePlayer::MoveWindow(intx,inty,intw,inth){}
voidCBasePlayer::StartTimer(UINTnElapse){
if(m_lpParentWnd)
m_lpParentWnd->SetTimer(-1,nElapse);
}
voidCBasePlayer::ConvTimerToStr(DWORDTimer,char*OutBuf){
wsprintf(OutBuf,"%02d:%02d:%02d",
Timer/(1000*60*60),Timer/(1000*60)%60,Timer/(1000)%60);
}
voidCBasePlayer::ChangePlayButton(){
if(m_lpParentWnd){
m_MainDlg.m_DrawMessage.m_DrawButtons[5].SetWindowText(m_IsPlay?";":"4");//|>
m_MainDlg.m_DrawMessage.m_DrawButtons[5].RePaint();
}
}
staticvoidConvAddTimer(CBasePlayer*pThis,char*Buf,DWORDPos){
charBuf1[32];
if(*Buf)lstrcat(Buf,"/");
pThis->ConvTimerToStr(Pos,Buf1);
lstrcat(Buf,Buf1);
}
voidCBasePlayer::ChangePosition(DWORDLoadPos,DWORDCurPos,DWORDMaxPos){
if(m_lpParentWnd){
m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].m_LoadPos=LoadPos;
m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].m_MaxPos=MaxPos;
m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].SetPos(CurPos,true);
charBuf[32*3];
Buf[0]=0;
DWORDLRCPos=CurPos;
if(m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].m_IsPressed)
ConvAddTimer(this,Buf,LRCPos=m_MainDlg.m_DrawMessage.m_DrawScrollBarPos[0].GetCurPos());
ConvAddTimer(this,Buf,CurPos);
ConvAddTimer(this,Buf,MaxPos);
SetMessageTimer(Buf);
CLRC::RunCommand(MLPlayPosChanged,(MLPARAM)LRCPos,0);
}
}
voidCBasePlayer::SetItemTimer(DWORDTimer){
charbuf[64];
ConvTimerToStr(Timer,buf);
m_pPlayItem->m_Timer=buf;
m_MainDlg.m_DrawListView.RePaint();
}
voidCBasePlayer::SetMessageTimer(char*pTimer){
m_MainDlg.m_DrawMessage.m_Message.m_InfoText=pTimer;
m_MainDlg.m_DrawMessage.m_Message.RePaint();;
}
////////////////////////////////////////////////////////////////////////////////
voidCBasePlayer::HookThis(){
m_Proc=Attach(m_hWnd);
}
voidCBasePlayer::UnHookThis(){
if(m_Proc)Detach(m_Proc);
m_Proc=0;
}
LRESULTCBasePlayer::OnMsg(UINTMsg,WPARAMwParam,LPARAMlParam){
switch(Msg){
caseWM_MOUSEMOVE:
caseWM_LBUTTONDBLCLK:
caseWM_LBUTTONDOWN:
if(m_lpParentWnd)
m_lpParentWnd->PostMessage(Msg,wParam,lParam);
break;
}
return::CallWindowProc((WNDPROC)m_Proc,m_hWnd,Msg,wParam,lParam);
}
//voidCBasePlayer::OnPaint(CKDC*DrawDC,LPRECTlpRc){}
有很多的!!注意!
ppplayer 与pplive
ppplayer只是一个播放器,而且是pplive的专用播放器,它和synacast(网视引擎)一起组成了pplive,明白吗?没有ppplayer你也照样用pplive,只要你装了windowsmediaplayer.你到c盘(如果你把pplive装到了c盘)打开pplive文件夹,你能在里面找到ppplayer.
好了,文章到此结束,希望可以帮助到大家。
- 最近发表