五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

FTXUI 終端簡易音樂播放器

2023-07-13 01:13 作者:葉恩湖  | 我要投稿

這次我們來寫一個簡單的音樂播放器界面。它有一個輸入框,用戶填寫音樂文件的路徑,按下播放鍵,音樂就會開始播放,并且播放按鈕變成停止按鈕。按下停止按鈕,音樂停止,播放按鈕又會重新出現(xiàn)。

為此,我們會啟動一個新的進程用來播放音樂。用新進程播放音樂的好處就是,就算播放的時候什么都做不了,也不會影響到用戶界面的運行。用戶界面會繼續(xù)接收用戶的輸入和刷新界面。

那么,這次還會涉及一些多進程的知識。

首先我們要明確一點,“fork”函數(shù)在父進程和子進程中的返回值是不同的。在父進程中,“fork”返回新創(chuàng)建的子進程的進程PID,而在子進程中,“fork”返回0。所以,“pid”變量在父子進程中的值是不同的:在父進程中,它是子進程的“PID”;在子進程中,它是0。

這段代碼中,“PID”的初始值設(shè)為0,表示沒有子進程。當(dāng)?shù)谝淮吸c擊按鈕時,會調(diào)用“fork”生成一個子進程。在父進程中,“fork”返回的是子進程的PID,這個值被賦給pid變量;而在子進程中,“fork”返回的是0,這意味著此時的pid變量仍然是0。

進程相關(guān)的部分主要集中在“Button”的回調(diào)函數(shù)里。這個回調(diào)函數(shù)定義了當(dāng)用戶點擊按鈕時應(yīng)該執(zhí)行的操作。

如果用戶首次點擊按鈕,即“pid”為0,“fork”被調(diào)用并創(chuàng)建一個新的子進程。在子進程中,“E-X-E-C-L-P”函數(shù)被調(diào)用,它用于替換當(dāng)前進程的映像(即當(dāng)前正在執(zhí)行的程序)。在這個例子中,子進程的映像被替換為“MPG一二三”程序,并傳入File Name作為參數(shù),這就啟動了音樂播放。之后,按鈕的標(biāo)簽從"Play"變?yōu)?#34;Stop"。

如果用戶再次點擊按鈕(即pid 不等于 0,也就是已經(jīng)有一個子進程在運行),則“kill”函數(shù)被調(diào)用,向子進程發(fā)送一個“Kill”信號,這會導(dǎo)致子進程終止。然后,pid被設(shè)置為0,按鈕的標(biāo)簽再次變?yōu)?#34;Play"。

這個程序依賴于"mpg123"來播放音頻文件,確保安裝了"mpg123"~

FTXUI 終端簡易音樂播放器的評論 (共 條)

分享到微博請遵守國家法律
布尔津县| 喀喇| 阳高县| 双峰县| 凤台县| 定远县| 丰都县| 泸水县| 拜城县| 昭平县| 交口县| 吉水县| 松溪县| 吉隆县| 长岭县| 萍乡市| 洛隆县| 云南省| 小金县| 博罗县| 耒阳市| 沅江市| 中西区| 建瓯市| 卢湾区| 承德县| 沙雅县| 海阳市| 阿拉善盟| 视频| 莫力| 上林县| 泌阳县| 长春市| 特克斯县| 永春县| 康乐县| 郓城县| 阜城县| 旺苍县| 岢岚县|