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




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

