手机版

百科游戏 手游攻略

ppplayer(与pplive)

百科 2026-02-07 12:04:52 手游攻略 阅读:9464次

大家好,今天小编来为大家解答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.

好了,文章到此结束,希望可以帮助到大家。

本文链接:https://bk.89qw.com/a-990192

最近发表
网站分类