freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm9的流媒體播放器的設(shè)計課程設(shè)計(參考版)

2025-07-01 01:31本頁面
  

【正文】 }33。 closedir(dir)。 default : 。 case 4: stop_play(share_tmp)。 case 3: pre_play(share_tmp,memory_id,head)。 case 2: next_play(share_tmp,memory_id,head)。 else continue_play(share_tmpid_tmp)。 start_play(memory_id,head)。 i++){ if(key_value[i] == 0){ key_tmp = i+1。 } else{ for(i=0。 if(ret != sizeof(key_value)){ if(errno != EAGAIN){ printf(read button device failed!\n)。rds)) { /* 讀取按鍵的值到數(shù)組中 */ ret = read(buttons_fd, amp。 } if (ret == 0) { printf(Timeout.\n)。 if (ret 0) { perror(select)。 /* 監(jiān)測按鍵的變化 */ ret = select(buttons_fd + 1, amp。 FD_SET(buttons_fd, amp。 while(1){ FD_ZERO(amp。 printf(K3 previous on one\n)。 printf(K1 start/pause play\n)。 } share_tmp = (struct share *)shmadd。 if (shmctl(memory_id, IPC_RMID, NULL) == 1) perror(Failed to remove memory segment)。 exit(EXIT_FAILURE)。 // 創(chuàng)建雙向循環(huán)鏈表,將媒體文件添加入鏈表中 print_list(head)。 break。amp。jFORMAT_NUM。 exit(EXIT_FAILURE)。 } /* 獲取當(dāng)前目錄的名字 */ getcwd(cwd_buf,sizeof(cwd_buf))。 if (buttons_fd 0) { perror(open device button)。 void *shmadd=(void *)0。 int memory_id。 char prev_name[WORD]。 int key_tmp。 int ret。 pnode head。 int j=0。 char *p=NULL。 //保存目錄名字 DIR *dir。}//主函數(shù)int main(int argc, char *argv[]){ int buttons_fd。 kill(share_tmpid_tmp,SIGKILL)。 } else if(id_test 0){ }}//退出播放程序void stop_play(struct share *share_tmp){ first_press=1。 } id_test=fork()。 if(node_tmp == NULL){ printf(only one song \n)。 kill(id_test,SIGKILL)。 printf(\nkey3 down prev\n)。 } else if(id_test 0){ }}//播放上一文件void pre_play(struct share *share_tmp,int mem_id,pnode head){ pnode node_tmp。 } id_test = fork()。 if(node_tmp == NULL){ printf(only one file \n)。 // strcpy(next_name, share_tmpname_tmp)。/* kill 原來的子進(jìn)程和孫子進(jìn)程 */ kill(share_tmpid_tmp,SIGKILL)。 play_flags=1。 kill(pid_tmp,SIGCONT)。}//繼續(xù)播放void continue_play(pid_t pid_tmp){ play_flags=1。 printf(\nkey1 down, pause\n)。 //創(chuàng)建子進(jìn)程用于播放文件 //該子進(jìn)程控制循環(huán)播放,當(dāng)文件播放完成后,創(chuàng)建一個新的孫子進(jìn)程來播放 if(id_test == 0){ play(mem_id,head)。 play_flags=1。 } else wait(NULL)。 share_paraid_tmp = getpid()。 } /* 將ID和文件名信息存入共享內(nèi)存 */ share_para = (struct share *)shmadd。 if(fork() == 0){ /* 映射共享內(nèi)存 */ if ((shmadd = shmat(mem_id, (void *)0, 0)) == NULL){ if (shmctl(mem_id, IPC_RMID, NULL) == 1) perror(Failed to remove memory segment)。 node_tmp = paraprev。 void *shmadd=(void *)0。 tmp = tmpnext。 printf(head:%s\n,heads_name)。}/* 打印雙向鏈表每個節(jié)點(diǎn)的值 */void print_list(pnode head){ pnode tmp = headnext。 } else { tmp= tmpnext。 if(strcmp(heads_name,para) == 0){ return head。 }/* 遍歷鏈表,返回當(dāng)前播放文件所對應(yīng)的節(jié)點(diǎn) */pnode search_list(pnode head,char para[]){ pnode tmp = NULL。 tmpnext = head。 tmp = new。 newprev = tmp。 } strcpy(news_name,para[i])。 if(new == NULL){ perror(malloc)。 in。 tmp = head。 headprev = NULL。 exit(EXIT_FAILURE)。 head = (pnode)malloc(sizeof(node))。 pnode new = NULL。/* 創(chuàng)建雙向循環(huán)鏈表,將媒體文件添加入鏈表中 */ pnode create_list(char para[][40],int n) { int i。 char name_tmp[WORD]。}node,*pnode。 struct list_node *next。 //子進(jìn)程IDchar *format[FORMAT_NUM]={ .mp4, .flv, .avi, .mov, .rmvb, .wmv, .3gp, .wma, .wav, .mp3 }。int play_flags=0。要完成這一步工作本人還需要進(jìn)一步的學(xué)習(xí)。其中詳細(xì)的介紹了如何把Linux移植到ARM平臺上,這當(dāng)中包括Bootload的移植,Linux內(nèi)核的移植和根文件系統(tǒng)的制作等內(nèi)容,也詳細(xì)的介紹了如何的移植MPlayer播放器,并且為視頻播放器編寫了按鍵控制程序,本文基本完成了一個嵌入式視頻播放器的設(shè)計工作。下圖為視頻播放器播放視頻的畫面。主要測試的是播放器的應(yīng)用程序能否按要求工作,對于常見的視頻格式是否能支持,為此準(zhǔn)備了以下幾種多媒體格式的文件進(jìn)行測試:MPMPAVI、WMV、MOV、。詳細(xì)的程序設(shè)計請參考參考附件A。按下2號鍵時播放器會自動的播放下一個文件,按下4號鍵則將播放上一文件。申請中斷等待中斷中斷到來?初始化記錄按鍵狀態(tài)NY 按鍵檢測流程圖視頻播放器將通過按鍵來實(shí)現(xiàn)開始播放、暫停播放、繼續(xù)播放、播放下一個文件和播放上一個文件的功能。在驅(qū)動程序中會注冊每個按鍵所對應(yīng)的中斷,每當(dāng)有按鍵按下的時候就會進(jìn)入到中斷處理函數(shù),在中斷處理函數(shù)里將記錄具體是哪個按鍵被按下。GQ2440開發(fā)板有6個按鍵,它們均從CPU中斷引腳直接引出,屬于低電平觸發(fā),下表為各按鍵和中斷源的對應(yīng)關(guān)系。本文將利用GQ2440上的按鍵來控制播放器的工作,例如控制視頻播放器開始播放或者是停止播放等。 (3)編譯好后,執(zhí)行make install命令將會在指定的目錄下生成MPlayer的可執(zhí)行文件mplayer,只要把mplayer下載到開發(fā)板上就能使用它來播放多媒體文件了。先把下載的MPlayer源代碼解壓,如果對MPlayer的配置選項不熟悉,可以如下執(zhí)行命令:./configure –help系統(tǒng)將列出MPlayer的所有配置選項,并附有簡要的介紹,了解MPlayer的配置選項后就可以根據(jù)自己的需求對MPlayer進(jìn)行配置了,本文的配置為:./configure prefix=/home/player hostcc=gcc cc=armlinuxgcc target=arm enablestatic disablewin32dll disableivtv disabledvdread disabledvdreadinternal disabledvdnav disablelibdvdcssinternal enablefbdev disablemencoder disablelive disablemp3lib enablemad withextraincdir=/opt/toolchains/arm920teabi/lib/include withextralibdir=/opt/toolchains/arm920teabi/lib/lib
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1