Java模擬微信來(lái)電提醒示例
引言
前幾天在抖音刷到一個(gè)老哥做的章魚(yú)哥來(lái)電提醒,感覺(jué)挺好玩的,于是就用Java搞了一個(gè)。
大致流程如下
- 章魚(yú)哥來(lái)電提醒
- 文本一朗讀
- 點(diǎn)擊鼠標(biāo)特效,緊接著攝像機(jī)移動(dòng)到電腦右下角
- 中間穿插這章魚(yú)哥朗誦視頻(無(wú)聲,聲源是文本內(nèi)容)
- 右下角彈出章魚(yú)哥來(lái)電提醒
- 右下角來(lái)電倒計(jì)時(shí)+文本二+文本三
- 播放章魚(yú)哥朗誦 章魚(yú)哥朗誦視頻+zhyg.wav聲音
開(kāi)搞 ?。?/p>
效果圖如下




代碼思路
是用java.swing 的 JFrame做的,它原生的按鈕太難看,于是想著用Jlabel放個(gè)圖片,加個(gè)監(jiān)聽(tīng)時(shí)間,代替按鈕的功能。
//去掉窗口的裝飾,title,最大化,最小,關(guān)閉按鈕 this.setUndecorated(true);
章魚(yú)哥的頭像是用PS處理過(guò)的,調(diào)試了一下大小,圖片的像素是100 x 100,使用的網(wǎng)格布局GridLayout,會(huì)自動(dòng)往右邊排列。
//章魚(yú)哥頭像
JLabel jLabel = new JLabel();
jLabel.setPreferredSize(new Dimension(100, 100));
//把圖片放到resource下面,最好是用PS導(dǎo)出png透明格式
URL url = ImageIcon.class.getResource("/zhyg.png");
Icon icon = new ImageIcon(url);
jLabel.setIcon(icon);
jHeadPanel.add(jLabel);
中間的倒計(jì)時(shí)是JTextField,設(shè)置一下字體格式,楷體,30大小就行, 接聽(tīng)按鈕和掛斷按鈕是像素是40 x 40,上面還有兩個(gè)透明的JLabel用來(lái)占位置,要不然按鈕會(huì)顯示在上面。
值得一提的是,播放音頻的時(shí)候需要啟動(dòng)一個(gè)線程,要不然會(huì)阻塞,意思是代碼執(zhí)行完了才會(huì)執(zhí)行,或者播放完了才會(huì)執(zhí)行倒計(jì)時(shí),反正各種奇怪的問(wèn)題。
//啟動(dòng)播放微信來(lái)電語(yǔ)音 PlayMp3 p = new PlayMp3(); new Thread(p).start();
加載音樂(lè)的時(shí)候試了下mp3格式的,好像不行,可以用ffmpge或者AE處理一下,導(dǎo)出wav格式的,家里有條件的可以買(mǎi)正版軟件。
File f = new File("wechat_call.wav");
URI uri2 = f.toURI();
URL url2 = uri2.toURL();
//這里處理了一下加載路徑的位置,要不然加載不到,這個(gè)URI和File加載的方式不一樣
String filename = url2.toString().replace("wechat_call.wav", "mail/src/main/resources/wechat_call.wav");
URL url = URI.create(filename).toURL();
AudioClip clip = Applet.newAudioClip(url);
// 控制音樂(lè)的播放與停止
clip.play();
Thread.sleep(10000);
clip.stop();
總結(jié)
起初我以為Java做不出來(lái)這個(gè)效果,沒(méi)想到還挺神似的,就是細(xì)節(jié)方面沒(méi)有處理,大概實(shí)現(xiàn)了一下,之后打算加個(gè)待辦列表,倒計(jì)時(shí)的時(shí)候提醒這個(gè)。有機(jī)會(huì)的話(huà)用Java Swing畫(huà)一下微信裝裝X,點(diǎn)擊通話(huà)的時(shí)候再顯示這個(gè)就更真實(shí)了,以假亂真。
以上就是Java模擬微信來(lái)電提醒示例的詳細(xì)內(nèi)容,更多關(guān)于Java模擬微信來(lái)電提醒的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MyBatis實(shí)戰(zhàn)之Mapper注解的示例
本文主要介紹了MyBatis實(shí)戰(zhàn)之Mapper注解的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
java數(shù)據(jù)結(jié)構(gòu)之插入排序
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之插入排序的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
springboot文件上傳時(shí)maxPostSize設(shè)置大小失效問(wèn)題及解決
這篇文章主要介紹了springboot文件上傳時(shí)maxPostSize設(shè)置大小失效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
SpringBoot3.x循環(huán)依賴(lài)問(wèn)題解決方案
這篇文章主要介紹了SpringBoot3.x循環(huán)依賴(lài)的相關(guān)知識(shí),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
Java實(shí)戰(zhàn)之利用POI生成Excel圖表
Apache POI是Java生態(tài)中處理Office文檔的核心工具,這篇文章主要為大家詳細(xì)介紹了如何在Excel中創(chuàng)建折線圖,柱狀圖,餅圖等常見(jiàn)圖表,需要的可以參考下2025-02-02
Java線程中的常見(jiàn)方法(start方法和run方法)
這篇文章主要介紹了Java線程中的常見(jiàn)方法(start方法和run方法),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07
解決springboot導(dǎo)入失敗,yml未識(shí)別的問(wèn)題
這篇文章主要介紹了解決springboot導(dǎo)入失敗,yml未識(shí)別的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07

