首页 > 系统相关 >Qt里的QSoundEffect在Linux和Windows平台上的差异

Qt里的QSoundEffect在Linux和Windows平台上的差异

时间:2023-01-28 21:00:18浏览次数:46  
标签:Qt Windows 线程 Linux QSoundEffect 播放

最近写一个morse码练习软件,使用Qt开发,用到了QSoundEffect。

因为Qt跨平台的特性,把Linux下的源代码直接放到Windows下编译可以直接通过,但运行起来却有问题。在Linux下节奏正常的播放,在Windows下节奏明显变慢。找不出问题,只好用个笨办法,在代码开始运行时启动一个QElapsedTimer,每行代码执行完毕qDebug输出一下消耗时长。把Linux和Windows平台输出的调试信息对比发现,QSoundEffect的stop,Linux平台上耗时0,Windows平台上耗时大约200多毫秒。这个时长在大多环境下不是问题,在morse码播放无法接受,一个滴声的长度一般也就在80毫秒左右。

最后用线程解决了这个问题。把播放任务放到线程里,主线程正常计时,调用线程播放滴嗒声,stop动作放在线程里,对主线程的计时没有影响。

然后的问题是200毫秒还是太长了,两个连续的滴声经常无法正常工作。于是用多个滴声线程,播放之前检查一下,谁闲着就用谁。

基本可以正常使用。

 

标签:Qt,Windows,线程,Linux,QSoundEffect,播放
From: https://www.cnblogs.com/sundp/p/17071259.html

相关文章

  • linux用户组管理命令详细介绍
    学习目标1、了解用户和用户组的概念2、可以添加useradd和删除userdel用户,修改用户密码passwd3、可以添加groupadd和删除groupdel用户组4、了解管道符|的作用5、会使用ifcon......
  • Linux入门,Linux入门教程:Linux文件管理
    一、文件命名规则1、可以使用哪些字符?除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,不建议使用某些特殊字符,例如,<、>、?、*等,尽量避免使用。如果......
  • Linux入门:Linux进程检测与控制
    学习目标1、了解进程和程序的关系2、了解进程的特点3、能够使用top动态查看进程信息4、能够使用ps静态查看进程信息5、能够使用kill命令给进程发送信号6、能够调整进程的优......
  • 【转】解决 Windows 10 端口被 Hyper-V 随机保留(占用)的问题
    原文地址:https://zhaoji.wang/solve-the-problem-of-windows-10-ports-being-randomly-reserved-occupied-by-hyper-v/ 大概从半年前开始,我发现我的代理软件配置的端口......
  • windows 10安装和配置NeoVim 0.8.2
    安装neovim下载最新版本:https://github.com/neovim/neovim/releases/tag/stable下载成功后,无须安装,解压安装包,放入合适的目录中,比如C:\nvim-win64中。NeoVim有两个启动......
  • 将IoTDB注册为Windows服务
    昨天写的文章《​​WindowsServer上部署IoTDB集群​​》,Windows下的IoTDB是控制台程序,打开窗口后,很容易被别人给关掉,因此考虑做成Windows服务,nssm正是解决该问题的利器。1.......
  • 彻底禁止Windows 10更新,你的电脑你做主
    5月推送的Windows102004版本可以说是Windows10史上最曲折的版本更新升级,带来很多新特性的同时也收获了很多新bug。对于部分倒霉蛋用户,Windows10每次更新升级都......
  • linux 导出日志 命令
    1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。  2、在命令行下输入shell指令:sz/var/log/boot.log,此时会弹出下载位置选择。3、点击确定......
  • 更改linux文件/目录的权限、拥有者及用户组
    在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。该文件用户可以修改该文件的拥有者及用户组,root用户可以修改任何文件的拥有者及用户组。在Linux中,对于文......
  • process-exporter到prometheus到grafana,监控linux进程,监控搭建
    搭建架构:Linux被监控机:process-exporterLinux监控机:prometheus&grafanamacos图形化展示监控结果:远程访问 prometheus&grafana 一、Linux被监控机的配置下载pro......