Java模拟微信来电提醒示例

 更新时间:2022年07月19日 10:08:18   作者:ManPushCar  
这篇文章主要为大家介绍了Java模拟微信来电提醒示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

前几天在抖音刷到一个老哥做的章鱼哥来电提醒,感觉挺好玩的,于是就用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,点击通话的时候再显示这个就更真实了,以假乱真。

以上就是Java模拟微信来电提醒示例的详细内容,更多关于Java模拟微信来电提醒的资料请关注脚本之家其它相关文章!

相关文章

  • Java并发之线程池Executor框架的深入理解

    Java并发之线程池Executor框架的深入理解

    这篇文章主要介绍了Java并发之线程池Executor框架的深入理解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Java支持方法重载的原因

    Java支持方法重载的原因

    今天给大家带来的是关于Java的相关知识,文章围绕着Java方法重载展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • java使用POI批量导入excel数据的方法

    java使用POI批量导入excel数据的方法

    这篇文章主要为大家详细介绍了java使用POI批量导入excel数据的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • java编程实现优先队列的二叉堆代码分享

    java编程实现优先队列的二叉堆代码分享

    这篇文章主要介绍了java编程实现优先队列的二叉堆代码分享,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java BigDecimal类用法详解

    Java BigDecimal类用法详解

    BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负scale 次幂。
    2016-06-06
  • Java中的TreeSet集合解析

    Java中的TreeSet集合解析

    这篇文章主要介绍了Java中的TreeSet集合解析,  TreeSet是一个有序的集合,基于TreeMap实现,支持两种排序方式:自然排序和定制排序,
    TreeSet是非同步的,线程不安全的,需要的朋友可以参考下
    2023-09-09
  • SpringBoot中如何统一接口返回与全局异常处理详解

    SpringBoot中如何统一接口返回与全局异常处理详解

    全局异常处理是个比较重要的功能,一般在项目里都会用到,这篇文章主要给大家介绍了关于SpringBoot中如何统一接口返回与全局异常处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • SpringBoot基于Shiro处理ajax请求代码实例

    SpringBoot基于Shiro处理ajax请求代码实例

    这篇文章主要介绍了SpringBoot基于Shiro处理ajax请求代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Spark学习笔记Spark Streaming的使用

    Spark学习笔记Spark Streaming的使用

    这篇文章主要介绍了Spark学习笔记Spark Streaming的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Springboot 在普通类型注入Service或mapper

    Springboot 在普通类型注入Service或mapper

    这篇文章主要介绍了Springboot 在普通类型注入Service或mapper,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论