專利名稱:一種機(jī)頂盒的開機(jī)視頻播放方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電視機(jī)頂盒,特別是涉及一種開機(jī)時(shí)播放運(yùn)營商提供的 -f見頻的方法。
背景技術(shù):
現(xiàn)有的機(jī)頂盒的開機(jī)畫面都是在開機(jī)時(shí)加載一幅或者幾幅靜止的圖 片數(shù)據(jù)。然后將這幅圖片顯示或者這幾幅圖片間隔顯示出來,由于現(xiàn)有 技術(shù)的開機(jī)畫面都是靜止圖片,信息量不大。而目前某些前端在某個(gè)臺
固定的TS ID (傳輸流地址)和Service ID (ill務(wù)地址)播;改廣告^L頻節(jié) 目。
如果仍然使用靜止固定的圖片數(shù)據(jù),就沒有充分利用前端已有的資 源,比如,進(jìn)行開機(jī)廣告的擴(kuò)展應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種可以在開機(jī)時(shí)自動(dòng)鎖定前端某 個(gè)廣告視頻。
為解決上述技術(shù)問題,本發(fā)明提供一種機(jī)頂盒的開機(jī)視頻播放方法, 包括如下步驟
一、用戶開機(jī)時(shí)機(jī)頂盒界面進(jìn)入開機(jī)廣告菜單;二、 機(jī)頂盒記錄上次關(guān)機(jī)前播放的節(jié)目信息;
三、 機(jī)頂盒根據(jù)運(yùn)營商提供的廣告視頻的服務(wù)地址和傳輸?shù)刂罚@ 取本次要播放的廣告視頻的節(jié)目信息;當(dāng)機(jī)頂盒存有所述節(jié)目信息的廣 告視頻時(shí),執(zhí)行步驟四;當(dāng)機(jī)頂盒沒有存有該節(jié)目時(shí)執(zhí)行步驟七;
四、 根據(jù)所述廣告視頻的節(jié)目信息中的頻率鎖頻狀態(tài),如果鎖頻成 功執(zhí)行步驟五;當(dāng)鎖頻不成功時(shí)執(zhí)行步驟七;
五、 機(jī)頂盒根據(jù)所述廣告視頻的節(jié)目信息播放相應(yīng)的廣告節(jié)目;
六、 機(jī)頂盒的計(jì)時(shí)器計(jì)時(shí),到達(dá)設(shè)定的時(shí)間后退出廣告節(jié)目播放;
七、 根據(jù)步驟二記錄的節(jié)目信息,播放上次關(guān)機(jī)前所播;改的節(jié)目。 所述步驟六中機(jī)頂盒計(jì)時(shí)器開始計(jì)時(shí),判斷時(shí)間是否超過第 一設(shè)置
時(shí)間,當(dāng)超過第一設(shè)置時(shí)間后,機(jī)頂盒在顯示器上顯示"按任意鍵退出" 的提示,按鍵值可用標(biāo)志置為"1";
且計(jì)時(shí)器計(jì)時(shí)的同時(shí),機(jī)頂盒開始檢測按4定值,如果按4定值可用標(biāo) 志為"1",并檢測到有效鍵值時(shí),退出廣告節(jié)目插-放,并執(zhí)行所述步驟 七,播放上次關(guān)機(jī)前播放的節(jié)目。
所述第一設(shè)置時(shí)間為5秒鐘。
在所述步驟六中還同時(shí)判斷時(shí)間是否超過第二設(shè)置時(shí)間,所述第二 設(shè)置時(shí)間大于所述第 一設(shè)置時(shí)間,當(dāng)計(jì)時(shí)器計(jì)時(shí)超過第二設(shè)置時(shí)間時(shí), 退出廣告節(jié)目播放,并執(zhí)行步驟七,播放上次關(guān)機(jī)前所播放的節(jié)目。
所述第二設(shè)置時(shí)間為20秒鐘。
所述步驟二中的節(jié)目信息包括該節(jié)目的頻率、視頻數(shù)據(jù)流地址、音 頻數(shù)據(jù)流地址、節(jié)目時(shí)鐘參考數(shù)據(jù)流地址。所述廣告視頻節(jié)目信息包括該節(jié)目的頻率、視頻數(shù)據(jù)流地址、音頻 數(shù)據(jù)流地址、節(jié)目時(shí)鐘參考數(shù)據(jù)流地址。
本發(fā)明的機(jī)頂盒的開機(jī)視頻播放方法,開機(jī)后可自動(dòng)鎖一個(gè)固定TS ID和SERVICE ID的節(jié)目,此功能根據(jù)某些區(qū)域的運(yùn)營商在某個(gè)固定頻 點(diǎn),固定Video PID, Audio PID #^文持續(xù)的廣告#見頻節(jié)目,充分利用了 前端的資源,為用戶提供了信息量豐富的廣告信息,也為運(yùn)營商的廣告 業(yè)務(wù)起到了推廣作用。
下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。 圖1為本發(fā)明機(jī)頂盒的開機(jī)視頻播放方法的流程圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明的一種機(jī)頂盒的開機(jī)視頻播放方法,包括如下 七個(gè)步驟
一、 用戶開機(jī)時(shí)機(jī)頂盒界面進(jìn)入開機(jī)廣告菜單;
二、 機(jī)頂盒記錄上次關(guān)機(jī)前播放的節(jié)目信息,包括該節(jié)目的頻率、 視頻數(shù)據(jù)流地址(video PID)、音頻數(shù)據(jù)流地址(Audio PID)、節(jié)目時(shí)鐘參考 數(shù)據(jù)流地址(PCRPID);
三、 機(jī)頂盒根據(jù)運(yùn)營商提供的廣告視頻的傳輸流地址(TS ID)和服 務(wù)地址(SERVICE ID),獲取本次要播放的廣告視頻的節(jié)目信息,包括該 節(jié)目的頻率、視頻數(shù)據(jù)流地址(videoPID)、音頻數(shù)據(jù)流地址(Audio PID)、節(jié)目時(shí)鐘參考數(shù)據(jù)流地址(PCRPID);當(dāng)機(jī)頂盒沒有廣告節(jié)目信息時(shí),執(zhí) 行步驟七,4番放上次關(guān)機(jī)前所播放的節(jié)目;當(dāng)機(jī)頂盒存有所述節(jié)目信息 的廣告一見頻時(shí),繼續(xù)執(zhí)行步驟四;
四、 根據(jù)所述廣告視頻的節(jié)目信息中的頻率鎖頻狀態(tài),當(dāng)機(jī)頂盒鎖 頻不成功時(shí)執(zhí)行步驟七,播放上次關(guān)機(jī)前播放的節(jié)目;如果鎖頻成功執(zhí) 行步驟五;
五、 機(jī)頂盒根據(jù)所述廣告視頻的節(jié)目信息中的視頻數(shù)據(jù)流地址(video PID)、音頻數(shù)據(jù)流地址(AudioPID)、節(jié)目時(shí)鐘參考數(shù)據(jù)流地址(PCRPID), 播放相應(yīng)的廣告節(jié)目;
六、 機(jī)頂盒的計(jì)時(shí)器計(jì)時(shí),并進(jìn)行控制
判斷時(shí)間是否超過5秒鐘(第一設(shè)置時(shí)間),當(dāng)超過5秒鐘后,機(jī)頂 盒在顯示器上顯示"按任意鍵退出"的提示,按鍵可用標(biāo)志置為"1"; 且計(jì)時(shí)器計(jì)時(shí)的同時(shí),機(jī)頂盒開始檢測按鍵值,如果按鍵值可用標(biāo)志為 "1",并檢測到有效鍵值時(shí),機(jī)頂盒退出廣告節(jié)目播放,并執(zhí)行所述步 驟七,播放上次關(guān)機(jī)前所看的節(jié)目。
在該步驟中還同時(shí)判斷時(shí)間是否超過20秒鐘(第二設(shè)置時(shí)間),當(dāng) 計(jì)時(shí)器計(jì)時(shí)超過20秒鐘時(shí),機(jī)頂盒退出廣告節(jié)目插-放,并執(zhí)行步驟七, 播放上次關(guān)機(jī)前播放的節(jié)目。
七、 根據(jù)步驟二記錄的節(jié)目信息,播放上次關(guān)機(jī)前播放的節(jié)目。 通過上述方法,本發(fā)明在開機(jī)后可自動(dòng)鎖一個(gè)固定TS ID (傳輸流地
址)和Service ID (服務(wù)地址)的節(jié)目,如果沒有搜索到該節(jié)目或者無法 鎖定其所在頻點(diǎn)的情況下,直接播放關(guān)機(jī)前用戶最后播;改的臺;如果鎖定了廣告所在的頻點(diǎn),則前5秒鐘為強(qiáng)制收看,過5秒鐘后用戶4姿任意 鍵退出;如用戶不按鍵,過20秒之后自動(dòng)退出廣告節(jié)目,轉(zhuǎn)而播放上次 關(guān)機(jī)前4番;改的臺。 實(shí)施例
硬件采用機(jī)頂盒STx5105,本發(fā)明的方法通過C程序語言實(shí)現(xiàn)。
用戶開機(jī)時(shí)機(jī)頂盒界面進(jìn)入開機(jī)廣告菜單,采用如下命令 SW—U32SWOSD—InterFacelnit(SW—VOID)
SWOSD_PMsgInit();
SWOSD—PGc = SWOSD—GetPGC(0);
SWOSD—MainPort = SWOSD一GetHDC(O);
memset(SWOSDWindow,0,SWOSD_WINDOWNUM*sizeof(SW—CWindowj)); SWOSDWinlnfo.CurrWindow = SW—OPENAD,開機(jī)時(shí)進(jìn)入開機(jī)廣告菜單" SWOSD Winlnfo.Pre Window = 0; SWOSDWinInfo.NeedRedraw= 1; SWOSD WinMo.NeedDrawBkgWindow = 0; Windo wMuteProc();
SWOSDQueue=(SW—VOID_P)message_create_queue—timeout(sizeof(SWOSD_ Msg_t),200);
if(NULL == SWOSDQueue)
printf("——> Create SWOSDQueue failed \n',); return 1;
SWOSD一ProcTask = task—create(SWOSD_Process,NULL,1024, 7, "usif_proc", (task—flags—1)0);
if ( SWOSD—ProcTask== NULL)SWERROR—RETURN("NULL == SWOSD—Process Create ",SW_FALSE);
SWOSD—ProcTask=task—create(SWOSD—UsIfProc,NULL,1024*30: 'swosd—task", (task一flags」)0);
if ( SWOSD—ProcTask== NULL)
SWERROR—RETURN("NULL == ptidUsifTask Create",SW_FALSE);
機(jī)頂盒記錄上次關(guān)機(jī)前播放的節(jié)目信息,采用如下命令
SW_PROG—INFO一t *prog_p = NULL; prog_p = NewProg一GetInfoOfCurrProg(); wOriFreq = prog_p->freq; wOriVidPid = prog_p->sVidPid; wOriAudPid = prog_p->sAudPid
; wOriPcrPid = prog_p->sPcrPid;
機(jī)頂盒獲取本次要播放的廣告視頻的節(jié)目信息,采用如下命令
#define OPENADSerivceID 718
#define OPENADTSID 7 SW_PROGJNFO_t * NewProg—GetProgInfoOfServiceID(SW—U32 serviceid,SW一U32 tsid)
SW—S32 temp = 0;
if(NULL == NewProgFlash_p) return NULL; if(NEWPROG—NOTCARE == tsid)
return 1;
return 1 j
return 0;for(temp =0 ; temp 〈SW一MAX一PROGNUM; temp++)
if(( 0 != PFlashDB_p->PDbase[temp].status)&&\
(serviceid == PFlashDB_p->PDbase[temp].serviceid))
return &(PFlashDB_p->PDbase[temp]);
else
for(temp =0 ; temp <SW_MAX—PROGNUM ; temp++)
if(( 0 != PFlashDB_p->PDbase[temp].status)&&\
(serviceid ==PFlashDB_p->PDbase[temp] .serviceid)&&\ (tsid == PFlashDB_p->PDbase[temp].tsid))
return &(PFlashDB_p->PDbase[temp]);
return NULL;
prog_p=NewProg—GetProgInfoOfServiceID(OPENADSerivceID,OPENADTSID); 當(dāng)機(jī)頂盒沒有廣告節(jié)目信息時(shí),播放上次關(guān)機(jī)前播放的節(jié)目,采用 如下命令
prog_p=NewProg—GetProgInfoOfServiceID(OPENADSerivceID,OPENADTSID); if(NULL != prog_p) /*當(dāng)機(jī)頂盒中存有該廣告視頻時(shí)*/ADPlayProgram(prog_p->freq,prog_p->sVidPid,prog_p->sAudPid[0〗,prog_p->sP
crPid);
ActionTime = SW—CentiSecTimer();
else/*當(dāng)機(jī)頂盒沒有廣告節(jié)目信息,播放上次關(guān)機(jī)前的節(jié)目*/
Win—Exit(SW—TOPMOST, l,O); } return 0;
當(dāng)機(jī)頂盒存有所述節(jié)目信息的廣告視頻時(shí),鎖頻成功,播放廣告視
頻,采用如下命令
prog_p=NewProg—GetProgInfoOfServiceID(OPENADSerivceID,OPENADTSID); if(NULL != prog_p) /*當(dāng)機(jī)頂盒中存有該廣告視頻時(shí)*/
ADPlayProgram(prog_p->freq,prog_p-〉sVidPid,prog_p->sAudPid
,prog_p->sP
crPid);
ActionTime = SW—CentiSecTimer();
else"沒有廣告節(jié)目信息,播放上次關(guān)機(jī)前的節(jié)目*/
Win一Exit(SW—TOPMOST,l,0); } return 0;
SW—LOCAL SW—U32 ADPlayProg訓(xùn)(SW一U32 vidfreq,SW一U16 vidpid,SW—U16 audpid,SW—U16 pcrpid)嚴(yán)播放節(jié)目函數(shù)*/
SW—U32 temp = 0; SW—U32 qam = 0; SW_U32 rate = 0;SW_StopNewChannel(); SWFAT_GetCommE2PInfo(E2P_NitRate,&rate); SWFAT—GetCommE2PInfo(E2P一NitQam,&qam); temp = SWTuner—LockFreq(vidfreq,rate,qam); if(O !-temp)嚴(yán)鎖頻不成功退出播放關(guān)機(jī)前的節(jié)目*/
Win一Exit(SWJTOPMOST, 1,0); return 1;
S^VAV一Play((unsigned int)vidpid,(unsigned int)audpid,(unsigned int)pcrpid,l);/* 否則播放開機(jī)廣告視頻V bPlaySuccess = 1; return 0;
當(dāng)機(jī)頂盒鎖頻不成功時(shí)播放上次關(guān)機(jī)前播放的節(jié)目,采用如下命令 SW—LOCAL SW一U32 ADPlayProgram(SW—U32 vidfreq,SW一U16 vidpid,SW一U16 audpid,SW—U16pcrpid)
SW_U32 temp = 0; SW—IB2 qam = 0; SW—U32 rate = 0; SW_StopNewChaimel();
SWFAT—GetCommE2PInfo(E2P—NitRate,&rate); SWFAT—GetCommE2PInfo(E2P一NitQam,&qam); temp = SWTuner一LockFreq(vidfreq,rate,qam); if(O !-temp)嚴(yán)鎖頻不成功退出播放關(guān)機(jī)前的節(jié)目*/
Win一Exit(SW一TOPMOST, 1,0); return 1;SWAV—Play((unsigned int)vidpid,(unsigned int)audpid,(unsigned int)pcipid,l);/* 否則播放開機(jī)廣告視頻*/ bPlaySuccess」1; return 0;
SW—LOCAL SW—U32 Win—Exit(SWJJ32 home,SW—U32 cle叫SWJJ32 param)
ADPlayBack();嚴(yán)播放開機(jī)前機(jī)頂盒保存的節(jié)目*/ win_sho wHintlnfo(O); SWOSD—SetCurrWindow(home); SWOSD—Red歸CurrWindow( 1);
SWOSD_AddSysMsg(l,SWOSD_REFRESH,SW—OPENAD,param,O); if(O != clean)
SWOSD—ClearRect(PDc,PGC,0,0,0,720,576); return 0;
機(jī)頂盒的計(jì)時(shí)器計(jì)時(shí)并進(jìn)行控制采用如下命令
SW—LOCAL SW—ERROR swcw一mainproc(SW—VOID—P handle,SW一VOID—P param,SWJJ32一P paraml)
SW—U32 module =0; SW—U32 tempO =0; SW—U32 tempi =0;
SWOSD—Msg—t *msg_p = (SWOSD—Msg—t "param; SW—CWindow—t *win = (SW一CWindow一t "handle; SWOSD—Msg—t tempmsg;if((NULL = msg_p)||(NULL == win)) return SW—NULLPOINT—ERROR;
module = msg_p->From_M;
switch(module)
case SW一KEYMODULE: tempO = msg_p->paramO; 〃ActionTime = SW一CentiSecTimer(); s wc w一mainkeyproc(tempO); break;
return SW_NO—ERROR; case SW一TIMERMODULE: tempo = msg_p->param4;
if(tempO > (ActionTime + ForceTimeout)) *如果時(shí)間大于第一設(shè)置時(shí)
間*/
bKEYValid二l;嚴(yán)將按鍵值可用標(biāo)志置為"1" */
win—showHintlnfo(l);/*機(jī)頂盒顯示"按任意鍵退出"的提示*/
if(tempO > (ActionTime + ExitTimeout)) /*如果時(shí)間大于第二設(shè)置時(shí)間
Win—Exit(SW_TOPMOST,l,0); /*退出開機(jī)廣告菜單*/
break', default: break*,
return SW一NO一ERROR;檢測按鍵采用如下命令 SW—LOCAL SW_ERROR swcw一mainkeyproc(SW—U32 key)
SW—U32 temp = 0;
if(bKEYValid == 1)/*如果拾建可用標(biāo)志為1*/
switch(key)"按有效鍵退出開機(jī)廣告菜單去播放開機(jī)前的節(jié)目*/
case SW—KEY—RECALL: case SW—KEY—EXIT:
temp = SW一TOPMOST;
Win—Exit(temp,l,O);
breakj default :
temp = SW一TOPMOST;
Win_Exit(temp,l,0);
breakj
return 0;
權(quán)利要求
1、一種機(jī)頂盒的開機(jī)視頻播放方法,包括如下步驟一、用戶開機(jī)時(shí)機(jī)頂盒界面進(jìn)入開機(jī)廣告菜單;二、機(jī)頂盒記錄上次關(guān)機(jī)前播放的節(jié)目信息;三、機(jī)頂盒根據(jù)運(yùn)營商提供的廣告視頻的服務(wù)地址和傳輸?shù)刂罚@取本次要播放的廣告視頻的節(jié)目信息;當(dāng)機(jī)頂盒存有所述節(jié)目信息的廣告視頻時(shí),執(zhí)行步驟四;當(dāng)機(jī)頂盒沒有存有該節(jié)目時(shí)執(zhí)行步驟七;四、根據(jù)所述廣告視頻的節(jié)目信息中的頻率鎖頻狀態(tài),如果鎖頻成功執(zhí)行步驟五;當(dāng)鎖頻不成功時(shí)執(zhí)行步驟七;五、機(jī)頂盒根據(jù)所述廣告視頻的節(jié)目信息播放相應(yīng)的廣告節(jié)目;六、機(jī)頂盒的計(jì)時(shí)器計(jì)時(shí),到達(dá)設(shè)定的時(shí)間后退出廣告節(jié)目播放;七、根據(jù)步驟二記錄的節(jié)目信息,播放上次關(guān)機(jī)前所播放的節(jié)目。
2、 根據(jù)權(quán)利要求1所述的機(jī)頂盒的開機(jī)視頻播放方法,其特征在 于,所述步驟六中機(jī)頂盒計(jì)時(shí)器開始計(jì)時(shí),判斷時(shí)間是否超過第一設(shè)置 時(shí)間,當(dāng)超過第一設(shè)置時(shí)間后,機(jī)頂盒在顯示器上顯示"按任意鍵退出" 的提示,按鍵值可用標(biāo)志置為"1";且計(jì)時(shí)器計(jì)時(shí)的同時(shí),機(jī)頂盒開始檢測按鍵值,如果按鍵值可用標(biāo) 志為"1",并檢測到有效鍵值時(shí),退出廣告節(jié)目播放,并執(zhí)行所述步驟 七,播放上次關(guān)機(jī)前播放的節(jié)目。
3、 根據(jù)權(quán)利要求2所述的機(jī)頂盒的開機(jī)視頻播放方法,其特征在于, 所述第一設(shè)置時(shí)間為5秒鐘。
4、 根據(jù)權(quán)利要求2或3所述的機(jī)頂盒的開機(jī)視頻播放方法,其特征 在于,在所述步驟六中還同時(shí)判斷時(shí)間是否超過第二設(shè)置時(shí)間,所述第 二設(shè)置時(shí)間大于所述第 一設(shè)置時(shí)間,當(dāng)計(jì)時(shí)器計(jì)時(shí)超過第二設(shè)置時(shí)間時(shí), 退出廣告節(jié)目播放,并執(zhí)行步驟七,播放上次關(guān)機(jī)前所播放的節(jié)目。
5、 根據(jù)權(quán)利要求4所述的機(jī)頂盒的開機(jī)視頻播放方法,其特征在于, 所述第二"&置時(shí)間為20秒鐘。
6、 根據(jù)權(quán)利要求1所述機(jī)頂盒的開機(jī)視頻播放方法,其特征在于, 所述步驟二中的節(jié)目信息包括該節(jié)目的頻率、視頻數(shù)據(jù)流地址、音頻數(shù) 據(jù)流地址、節(jié)目時(shí)鐘參考數(shù)據(jù)流地址。
7、 根據(jù)權(quán)利要求1所述的機(jī)頂盒的開機(jī)視頻播放方法,其特征在 于,所述廣告視頻節(jié)目信息包括該節(jié)目的頻率、視頻數(shù)據(jù)流地址、音頻 數(shù)據(jù)流地址、節(jié)目時(shí)鐘參考數(shù)據(jù)流地址。
全文摘要
一種機(jī)頂盒的開機(jī)視頻播放方法,其步驟一、用戶開機(jī)時(shí)機(jī)頂盒進(jìn)入開機(jī)廣告菜單;二、機(jī)頂盒記錄上次關(guān)機(jī)前播放的節(jié)目信息;三、機(jī)頂盒根據(jù)運(yùn)營商提供的廣告視頻的服務(wù)地址(SERVICE ID)和傳輸流地址(TS ID),獲取要播放的廣告視頻的節(jié)目信息;四、根據(jù)所述廣告視頻的節(jié)目信息中的頻率鎖頻;五、機(jī)頂盒根據(jù)所述廣告視頻的節(jié)目信息播放相應(yīng)的廣告節(jié)目;六、機(jī)頂盒計(jì)時(shí)器計(jì)時(shí),到達(dá)設(shè)定的時(shí)間后退出廣告節(jié)目播放;七、根據(jù)步驟二記錄的節(jié)目信息,播放上次關(guān)機(jī)前播放的節(jié)目。本方法機(jī)頂盒開機(jī)后可自動(dòng)鎖一個(gè)固定TS ID和SERVICE ID的節(jié)目,可充分利用前端的資源,為用戶提供了信息量豐富的廣告信息,也為運(yùn)營商的廣告業(yè)務(wù)起到了推廣作用。
文檔編號H04N5/50GK101426101SQ20081021773
公開日2009年5月6日 申請日期2008年11月28日 優(yōu)先權(quán)日2008年11月28日
發(fā)明者瑩 韓 申請人:康佳集團(tuán)股份有限公司