Java模拟微信来电提醒
ManPushCar 人气:0引言
前几天在抖音刷到一个老哥做的章鱼哥来电提醒,感觉挺好玩的,于是就用Java搞了一个。
大致流程如下
- 章鱼哥来电提醒
- 文本一朗读
- 点击鼠标特效,紧接着摄像机移动到电脑右下角
- 中间穿插这章鱼哥朗诵视频(无声,声源是文本内容)
- 右下角弹出章鱼哥来电提醒
- 右下角来电倒计时+文本二+文本三
- 播放章鱼哥朗诵 章鱼哥朗诵视频+zhyg.wav声音
开搞 !!
效果图如下
代码思路
是用java.swing 的 JFrame做的,它原生的按钮太难看,于是想着用Jlabel放个图片,加个监听时间,代替按钮的功能。
//去掉窗口的装饰,title,最大化,最小,关闭按钮 this.setUndecorated(true);
章鱼哥的头像是用PS处理过的,调试了一下大小,图片的像素是100 x 100,使用的网格布局GridLayout,会自动往右边排列。
//章鱼哥头像 JLabel jLabel = new JLabel(); jLabel.setPreferredSize(new Dimension(100, 100)); //把图片放到resource下面,最好是用PS导出png透明格式 URL url = ImageIcon.class.getResource("/zhyg.png"); Icon icon = new ImageIcon(url); jLabel.setIcon(icon); jHeadPanel.add(jLabel);
中间的倒计时是JTextField,设置一下字体格式,楷体,30大小就行, 接听按钮和挂断按钮是像素是40 x 40,上面还有两个透明的JLabel用来占位置,要不然按钮会显示在上面。
值得一提的是,播放音频的时候需要启动一个线程,要不然会阻塞,意思是代码执行完了才会执行,或者播放完了才会执行倒计时,反正各种奇怪的问题。
//启动播放微信来电语音 PlayMp3 p = new PlayMp3(); new Thread(p).start();
加载音乐的时候试了下mp3格式的,好像不行,可以用ffmpge或者AE处理一下,导出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();
总结
起初我以为Java做不出来这个效果,没想到还挺神似的,就是细节方面没有处理,大概实现了一下,之后打算加个待办列表,倒计时的时候提醒这个。有机会的话用Java Swing画一下微信装装X,点击通话的时候再显示这个就更真实了,以假乱真。
加载全部内容