亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Mplayer 的一種設計方法

        2013-08-16 06:12:50張春平
        科技視界 2013年1期
        關鍵詞:線程觸摸屏按鍵

        張春平

        (石家莊職業(yè)技術學院,河北石家莊050081)

        1 介紹

        在嵌入式軟件開發(fā)學習過程中,教師會安排很多小的項目來驗證學習者階段學習的成效, 其中Mplayer 是基于Linux 系統(tǒng)編程的一個項目。 這個項目基于Cortex A8 平臺,具有觸摸屏和按鍵。 學習者利用這個平臺開發(fā)Mplayer,基本功能是顯示歌曲信息、同步歌詞,顯示歌曲列表,當前歌曲反顯,點擊歌曲名能切換歌曲,顯示當前播放進度,實現按鍵、觸摸屏控制mp3 文件的播放、暫停、上一首、下一首、快進、快退、音量加減、靜音等功能。

        2 Mplayer 設計步驟

        Mplayer 是Linux 系統(tǒng)編程的一個實例,這里涉及到進程和線程,讓學習者練習進程和線程的具體應用。 觸摸屏和按鍵都可以控制歌曲,這就要使用不同的線程實現,另外歌曲的播放進程和觸摸屏、按鍵等線程之間要進行通信,獲取按鍵和觸摸屏線程傳遞的命令實現相應的歌曲切換等功能, 這里使用無名管道和命名管道實現進程之間通信。 下面具體看看設計步驟。

        2.1 初始化

        Mplayer 啟動,初始化圖形庫和觸摸屏,實現背景窗口的初始化。系統(tǒng)提供了圖形庫函數以及觸摸屏相關使用函數,學習者可以直接調用實現其相關功能。 例如以下函數:

        TFT_init();這是將液晶屏初始化。

        TFT_File_Picture();窗口貼圖函數。

        TFT_CreateWindow();創(chuàng)建背景窗口函數。

        TFT_ClearWindow();窗口清除函數。

        2.2 歌曲列表、高亮顯示播放歌曲

        從歌曲文件夾中讀取歌曲名字,可以使用指針數組、鏈表或者數據庫保存。 利用獨立函數將歌曲歌詞列表顯示,并把播放的歌曲名高亮。 其中使用到打開目錄函數和讀取目錄下文件函數。

        DIR *opendir(char *pathname);

        int closedir(DIR *dir);

        struct dirent *readdir(DIR *dir);

        這些函數的具體使用方法可以參照Linux C 函數文檔, 具體了解,這里不再贅述。

        2.3 歌曲切換

        由觸摸屏和按鍵實現歌曲播放、暫停、歌曲切換等功能,歌曲的切換通過mplayer 提供的“l(fā)oadfile pathname”命令,切換到pathname 指定的歌曲。 歌曲歌詞列表實現之后創(chuàng)建子進程,在子進程中啟動mplayer,使用execl 或者execv 實現。execl 或execv 規(guī)定了mplayer 從命名管道獲取信息, 主進程就只能從這個命名管道發(fā)送命令來控制mplayer實現歌曲切換。 所以主進程需要創(chuàng)建觸摸屏線程和按鍵線程,檢測觸摸屏和按鍵操作,發(fā)送命令到這條命名管道,實現歌曲真正的切換功能。

        2.4 歌曲信息顯示

        在歌曲信息窗口顯示歌曲的總長度、當前播放時間,以及歌曲的專輯、歌手、標題等信息,這些信息在歌曲切換時進行刷新。 這些信息是通過mplayer 的一些命令獲取,但是需要重定向mplayer 的輸出,輸出到無名管道的寫入端,這樣其他進程和線程可以獲得信息,將需要的信息顯示到液晶屏。

        2.5 歌曲歌詞顯示

        在mplayer 播放歌曲時,查找歌詞,根據mplayer 返回的當前播放時間來查找歌詞,使得歌曲和歌詞同步,當歌曲快進時也可以實現同步功能,歌詞解析功能使用獨立線程完成。

        3 Mplayer 流程

        圖1 是Mplayer 開發(fā)流程圖。

        圖1 Mplayer 流程圖

        上面, 我們具體講述了開發(fā)Mplayer 項目每一步驟做的具體事宜,而使用流程圖來表示出具體情況,顯得清晰明了,這樣學習者能更清楚的了解項目的開發(fā)。

        4 Mplayer 的擴展功能

        上文介紹的設計是Mplayer 的基本功能實現,如果學習者有更多的時間和精力可以擴展更多的功能,比如觸摸進度條就可以使得歌曲快進或者快退;觸摸歌詞顯示窗口,往上滑動或者向下滑動歌詞,也可以使得歌曲快進或者快退。另外這個播放器是將固定路徑下的歌曲添加到歌曲名稱顯示窗口,那我們可以清除其窗口,利用添加按鈕,選擇不同的路徑來添加歌曲。這些功能實現難度稍大,學習者能力不同,可以根據自身情況來完成。

        [1]Stephen Prata.C Primer Plus[M].北京:人民郵電出版社,2012:354-370.

        [2]Neil Matthew,等.Linux 程序設計.4 版[M].北京:人民郵電出版社,2012:102-103,443-464.

        [3]韋東山.嵌入式Linux 應用開發(fā)完全手冊[M].北京:人民郵電出版社,2012:197-221.

        猜你喜歡
        線程觸摸屏按鍵
        基于有限狀態(tài)機的按鍵檢測程序設計
        電子制作(2021年3期)2021-06-16 03:14:26
        PLC和觸摸屏在衛(wèi)生間控制系統(tǒng)的應用
        皮膚“長”出觸摸屏
        淺談linux多線程協(xié)作
        一種多方向導光按鍵結構設計
        電子制作(2016年1期)2016-11-07 08:43:05
        投射式多點觸控電容觸摸屏
        河南科技(2014年12期)2014-02-27 14:10:32
        觸摸屏項目移植在自動化系統(tǒng)升級中的應用
        按鍵的多種狀態(tài)檢測及消抖處理方法
        家電科技(2013年4期)2013-07-09 10:55:08
        Linux線程實現技術研究
        解析某型號手機按鍵檢測程序的缺陷
        熟女少妇内射日韩亚洲| 亚洲精品一区二区三区日韩 | 亚洲综合中文字幕日韩| 牛牛在线视频| 性饥渴艳妇性色生活片在线播放| 欧美日本国产亚洲网站免费一区二区 | 91久久综合精品久久久综合| 久久精品国产亚洲av无码娇色 | 国产精品无码无卡无需播放器| 在线观看国产成人av片| 日韩中文字幕精品免费一区| 亚洲精彩av大片在线观看| 丰满少妇弄高潮了www| 亚洲av无码之日韩精品| AV熟妇导航网| 一本之道日本熟妇人妻| 成人无码网www在线观看| 91麻豆国产香蕉久久精品| 亚洲av第一区综合激情久久久 | 亚洲gv白嫩小受在线观看| 欧美巨大xxxx做受中文字幕| 日韩人妻精品视频一区二区三区| 国产精品永久免费| 国产欧美日韩综合在线一区二区| 久久国产精品国产精品久久| 白白白在线视频免费播放| a级毛片免费观看网站| 在线观看国产精品91| 日韩精品免费av一区二区三区 | 人妻少妇久久久久久97人妻| 亚洲熟女少妇一区二区| 亚洲精品国产熟女久久| 不卡一区二区视频日本| 无码人妻av一区二区三区蜜臀 | 久久精品人人做人人综合| 欧美xxxx新一区二区三区| 亚洲一区二区av天堂| 插我一区二区在线观看| 水蜜桃久久| 精品久久免费国产乱色也| 中文字幕人妻在线中字|