Qt:关于使用player->state()导致的程序崩溃

前言

最近想做一个白噪声播放器,中间就用到了QMediaplayer这个类,其中遇到两个问题,一个是调用player->duration()第一次获取媒体时长为0的问题(这个问题留到下一个文章去说);还有一个就是未初始化好就调用player->state()导致程序异常崩溃的问题。

正文

使用player一定要先注意是否初始化,一定要先注意是否初始化,一定要先注意是否初始化。
因为我的媒体设置是从QCombox中获取文件名,然后再调用player->setMedia(QUrl::fromLocalFile(path));来设置媒体。
原先的构造函数的结构是

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){initCboMusic();player = new QMediaPlayer(this);
}
// intiCboMusic部分内容
void Widget::initCboMusic()
{QDir dir("./Src/Music");QStringList fileNames = dir.entryList(QStringList()<<"*.mp3"<<"*.wav");//qDebug()<<fileNames;ui->cboMusic->addItems(fileNames);connect(ui->cboMusic,QOverload<int>::of(&QComboBox::currentIndexChanged), this,[=](int index){Q_UNUSED(index);QString fileName = ui->cboMusic->currentText();if (player->state() == QMediaPlayer::PlayingState || player->state() == QMediaPlayer::PausedState) {player->stop();player->setMedia(QUrl::fromLocalFile(path));player->play();return;}};
}
// 开始播放的部分代码
void Widget::on_btnBegin_clicked()
{QString fileName = ui->cboMusic->currentText();qDebug()<<"当前文件: "<<fileName;// 仅仅设置,资源不一定全部加载player->setMedia(QUrl::fromLocalFile("./Src/Music/" + fileName));player->play();
}

当程序运行的时候,会报
在这里插入图片描述

解决方法

initCboMusic()放到player = new QMediaPlayer(this)后,避免空指针访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/419853.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决Win10版Township进度保存问题

解决Win10版Township进度保存问题 问题描述问题分析解决步骤1.WinR打开运行&#xff0c;输入regedit点击确定打开注册表2.进入注册表“计算机\HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings”目录3.在这…

逆向学习系列(一)安装模拟器

从今天开始&#xff0c;学习逆向APP的知识并记录。 首先&#xff0c;从最简单的环境搭建开始&#xff0c;我的环境&#xff08;LENOVO&#xff09;&#xff0c;win7&#xff0c;64位。 &#xff08;一&#xff09;安装mumu模拟器。 官网地址&#xff1a;MuMu模拟器官网_安卓…

【idea】设置文件模板

搜索 File and Code Templates 。 添加模板。 在任意文件目录下右键&#xff0c;new->找到添加的模板。 参考链接&#xff1a; IDEA创建模板文件_edit file templates-CSDN博客

Rocketmq 概述消息队列的应用场景

Message Queue &#xff08;消息 队列&#xff09;&#xff0c;从字⾯上理解&#xff1a;⾸先它是⼀个队列。 FIFO 先进先出的数据结构—— 队列。消息队列就是所谓的存放消息的队列。 消息队列解决的不是存放消息的队列的⽬的&#xff0c;解决的是通信问题。 先来看看没有使用…

rancher搭建k8s及jenkins自动化部署

1、准备环境 角色IP用途k8s-rancher-master192.168.3.63master节点k8s-rancher-node01192.168.3.64node节点k8s-rancher-node02192.168.3.66node节点k8s-rancher-server192.168.2.33rancher-server节点注: 服务器名需要配置不同,相同服务器名不能加入node节点 在所有节点进行…

海外直播对网速、带宽、安全的要求

要满足海外直播的要求&#xff0c;需要拥有合适的网络配置。在全球化的浪潮下&#xff0c;海外直播正逐渐成为企业、个人和各类组织的重要工具。不论是用于市场推广、品牌宣传&#xff0c;还是与观众互动&#xff0c;海外直播都为参与者带来了丰富的机会。然而&#xff0c;确保…

【小项目】python贪吃蛇小游戏设计

引入pygame库 添加pygame库&#xff0c;在cmd中输入以下代码&#xff0c;进行安装。如果输入pip install pygame出现以下报错&#xff0c;可以尝试在前面加入python3 -m。 python3 -m pip install pygame 贪吃蛇代码 import pygame import time import random# 初始化 Pygam…

【原创】java+springboot+mysql学生信息管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

IQ Tools---Radar Pulses/Chirps

本文将详细介绍IQ Tool中的Radar Pulses/Chirps模块的使用方法和实现原理。 1. 参数配置 图1. Radar Pulses/Chirps参数配置界面 该模块可配参数如下&#xff1a;   (1) Sample Rate(Hz): 系统采样率&#xff0c;单位:Hz   (2) Repeat interval(s): 脉冲重复周期&#xff…

数据库类型有哪些?

根据存储方式的不同&#xff0c;数据库可以分为不同种类。每种类型的数据库&#xff0c;都有各自使用场景以及不同的产品。 ​ 关系型数据库 关系型数据库&#xff08;RDBMS&#xff09;基于关系模型&#xff0c;通过表&#xff08;Table&#xff09;的形式来组织数据&#xf…

java中普通代码块和静态代码块之间的区别(java小知识点)

文章目录 1.普通代码块&#xff08;实例代码块&#xff09;1.1用法 2.静态代码块2.1用法 3.总结 1.普通代码块&#xff08;实例代码块&#xff09; 实例代码块是一段未包含在任何方法或构造器中的代码。它再每次创建类的实例时候执行&#xff0c;并且优先于构造器执行. 用途一般…

照片删除了怎么恢复回来?要学会这些数据恢复方法

在数字化时代&#xff0c;照片已经成为我们记录生活、珍藏回忆的重要载体。然而&#xff0c;有时由于误操作或其他原因&#xff0c;我们可能会不小心删除了重要的照片。面对这种情况&#xff0c;很多人会感到焦虑和无助。幸运的是&#xff0c;有多种方法可以帮助我们恢复删除的…

【项目功能扩展】在线网站 -用户管理功能(用户注册登录修改等、利用cookie存储用户会话状态)

文章目录 0. 前言开发环境 & 涉及技术 1. 宏观结构2. 后端部分① sqlite 管理类② user 管理类 3. 前端部分&#xff08;与后端交互&#xff09;① 登录② 注册③ 查看登录用户的信息④ 更新用户信息⑤ 登出用户 & 注销用户注意 效果演示 0. 前言 源码链接&#xff1a…

Java | Leetcode Java题解之第391题完美矩形

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isRectangleCover(int[][] rectangles) {long area 0;int minX rectangles[0][0], minY rectangles[0][1], maxX rectangles[0][2], maxY rectangles[0][3];Map<Point, Integer> cnt new HashM…

Python AttributeError: ‘dict_values’ object has no attribute ‘index’

Python AttributeError: ‘dict_values’ object has no attribute ‘index’ 在Python编程中&#xff0c;AttributeError 是一个常见的异常类型&#xff0c;通常发生在尝试访问对象没有的属性或方法时。今天&#xff0c;我们将深入探讨一个具体的 AttributeError&#xff1a;“…

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

&#x1f308;个人主页&#xff1a; 南桥几晴秋 &#x1f308;C专栏&#xff1a; 南桥谈C &#x1f308;C语言专栏&#xff1a; C语言学习系列 &#x1f308;Linux学习专栏&#xff1a; 南桥谈Linux &#x1f308;数据结构学习专栏&#xff1a; 数据结构杂谈 &#x1f308;数据…

ML19_GMM高斯混合模型详解

1. 中心极限定理 中心极限定理&#xff08;Central Limit Theorem, CLT&#xff09;是概率论中的一个重要定理&#xff0c;它描述了在一定条件下&#xff0c;独立同分布的随机变量序列的标准化和的分布趋向于正态分布的性质。这个定理在统计学中有着广泛的应用&#xff0c;尤其…

高通智能模组:以卓越优势引领科技潮流

一、高通智能模组的崛起与发展 在通信技术发展中&#xff0c;高通智能模组出现。5G 兴起&#xff0c;对模组有更高要求&#xff0c;高通凭借积累和创新捕捉需求。早期致力于研发 5G 技术&#xff0c;优化技术降低功耗提高处理能力&#xff0c;展现性能优势。在竞争中&#xff0…

黑豹X2(Panther-x2)刷机并驱动NPU/VPU、Jellyfin转码

文章目录 零、前言一、刷机1、下载所需文件2、开始刷机 二、连接SSH并初始化1、连接SSH2、初始化换源安装蓝牙模块驱动安装一些包检查驱动 三、安装Docker和Jellyfin1、安装Docker安装Docker Compose 2、安装Jellyfin3、配置转码 四、NPU的驱动&#xff08;可选&#xff09; 零…

消息队列 MQ 性能大揭秘

RabbitMQ 以下是rabbitmq官方针对RabbitMQ 3.12的性能测试报告&#xff0c;从报告中可以看到他测试的吞吐量是保持在万级的&#xff0c;延迟时间平均在25毫秒左右&#xff0c;最小延时可以达到微秒级。 另外图中还可以看到在低吞吐量的情况下rabbitmq的延迟速度非常的快&…