999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Mplayer 的一種設計方法

2013-08-16 06:12:50張春平
科技視界 2013年1期
關鍵詞:進程功能

張春平

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

1 介紹

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

2 Mplayer 設計步驟

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

2.1 初始化

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

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

TFT_File_Picture();窗口貼圖函數。

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

TFT_ClearWindow();窗口清除函數。

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

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

DIR *opendir(char *pathname);

int closedir(DIR *dir);

struct dirent *readdir(DIR *dir);

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

2.3 歌曲切換

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

2.4 歌曲信息顯示

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

2.5 歌曲歌詞顯示

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

3 Mplayer 流程

圖1 是Mplayer 開發流程圖。

圖1 Mplayer 流程圖

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

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 應用開發完全手冊[M].北京:人民郵電出版社,2012:197-221.

猜你喜歡
進程功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應用
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 久久99国产综合精品1| 超级碰免费视频91| 一本久道久久综合多人| 免费人成又黄又爽的视频网站| 国内精品一区二区在线观看| 精品综合久久久久久97| 亚洲成人在线网| 亚洲国产欧美国产综合久久 | 成人噜噜噜视频在线观看| 鲁鲁鲁爽爽爽在线视频观看| 2020最新国产精品视频| 国产精品自拍露脸视频| 国产成人8x视频一区二区| 亚洲综合在线网| 精品一区二区三区波多野结衣 | 亚洲不卡影院| 国产浮力第一页永久地址 | 亚洲男人的天堂久久香蕉| 国产成人综合日韩精品无码首页| 天天做天天爱天天爽综合区| 丰满少妇αⅴ无码区| 久久6免费视频| 日韩专区第一页| 亚洲天堂伊人| 无码免费的亚洲视频| 国产69精品久久久久妇女| 国产成人区在线观看视频| 国产亚洲高清视频| 欧美不卡在线视频| 国产乱子伦视频在线播放| 黄色在线不卡| 亚洲最大综合网| 色欲色欲久久综合网| 在线观看国产网址你懂的| 午夜福利视频一区| 99re这里只有国产中文精品国产精品| 免费看久久精品99| 日韩av在线直播| 日本免费一级视频| www.亚洲色图.com| 亚洲欧洲国产成人综合不卡| 美女国内精品自产拍在线播放| 色爽网免费视频| 亚洲AV无码乱码在线观看裸奔| 国产91九色在线播放| 国产女人18水真多毛片18精品| 国产亚洲欧美在线人成aaaa | 香蕉久人久人青草青草| 婷婷综合在线观看丁香| 欧美日韩理论| 亚洲综合精品香蕉久久网| 亚洲av无码片一区二区三区| 欧美精品在线免费| 国产色网站| 日韩欧美在线观看| 亚洲天堂高清| 亚洲一区国色天香| 国产又粗又猛又爽视频| 亚洲中文字幕久久精品无码一区| 美女被操黄色视频网站| 亚洲一级色| 亚洲国产欧洲精品路线久久| 天天色天天操综合网| 色婷婷综合激情视频免费看| 草草影院国产第一页| 国产肉感大码AV无码| 欧美亚洲一区二区三区导航| 国产欧美中文字幕| 日韩欧美国产精品| 国产精品主播| 国产福利在线免费观看| 精品夜恋影院亚洲欧洲| 国产欧美日韩在线在线不卡视频| 一级在线毛片| 强奷白丝美女在线观看| 国产精品福利在线观看无码卡| 久久久波多野结衣av一区二区| 免费观看亚洲人成网站| 中文字幕在线不卡视频| 免费女人18毛片a级毛片视频| 国产99精品久久| 亚洲欧美在线综合一区二区三区|