亚洲免费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麻豆 | 丰满少妇av一区二区三区| 欧美又大粗又爽又黄大片视频| 国产成人精品无码一区二区老年人 | 无码av一区在线观看| 精品亚洲国产亚洲国产| 久久精品国产亚洲av热九九热| 亚洲综合视频一区二区| 狠狠97人人婷婷五月| 丰满老熟妇好大bbbbb| 蜜桃一区二区三区在线看| 日本高清不卡二区三区| 亚洲日韩中文字幕在线播放| 精品国产一区二区三区久久狼| 无码免费午夜福利片在线| 在线国产丝袜自拍观看| 亚洲日韩激情无码一区| 亚洲最大中文字幕无码网站| 玖玖资源站无码专区| 论理视频二区三区四区在线观看| 少妇人妻在线无码天堂视频网| 中文在线天堂网www| 青青手机在线视频观看| 国产一区二区三区视频地址| 少妇被粗大的猛烈进出免费视频 | 性欧美videofree高清精品 | 久久久噜噜噜久久中文福利| 亚洲欧洲巨乳清纯| 99久久精品久久久| 国产剧情av麻豆香蕉精品| 久久国产亚洲高清观看| 澳门精品无码一区二区三区| 日韩女同一区二区三区久久| 永久免费毛片在线播放| 精品人妻系列无码人妻免费视频 | 国产精品露脸视频观看| 亚洲区福利视频免费看| 黄片视频免费在线观看国产|