qt 播放音视频简单实现

videoPlayApp.h

#pragma once
#include <QtWidgets/QWidget>
//#include "ui_videoPlayApp.h"
#include<qmediaplayer.h>
#include<qmediaplaylist.h>
#include<qpushbutton.h>
#include<qvideowidget.h>
#include<qlabel.h>

class videoPlayApp : public QWidget
{
	Q_OBJECT
public:
	//播放状态
	enum PlayState
	{
		PLAY,
		PAUSE,
		STOP
	};
public:
	videoPlayApp(QWidget *parent = Q_NULLPTR);
	void initialize();
private slots:
	//打开文件
	bool openFileSlots();
	//播放
	void playSlots();
	//退出
	bool exitSlots();
	//播放下个文件
	void nextSlots();
private:
	//当前文件路径
	QString filePath;
	//当前播放状态
	PlayState playState;
	//创建播放器
	QMediaPlayer* player;
	//创建播放列表
	QMediaPlaylist* playerlist;

	QWidget* videoPlayWidget;
	//视频播放窗口
	QVideoWidget* videoWidget;
	//记录视频名称和路径
	QMap<QString,QString> videoNameAndPath;
	//记录视频路径
	QVector<QString> videoPathVector;
	//当前视频名称
	QLabel* videoName;
	//Ui::videoPlayAppClass ui;

};

videoPlayApp.cpp

在这里插入代码片#include "videoPlayApp.h"
#include<qlayout.h>
#include<QBoxLayout>
#include<QVBoxLayout>
#include<qmessagebox.h>
#include<qfiledialog.h>



#define CHS(text) QString::fromLocal8Bit(text)

videoPlayApp::videoPlayApp(QWidget *parent)
	: QWidget(parent),
	filePath(""),
	playState(STOP),
	player(NULL),
	playerlist(NULL),
	videoWidget(NULL),
	videoPlayWidget(NULL),
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细、全面地介绍了 Qt 开发中的各个技术细节,并且额外赠送在嵌入式端编写Qt程序的技巧。整个课程涵盖知识点非常多,知识模块囊括 Qt-Core 组件、QWidgets、多媒体、网络、绘图、数据库,超过200个 C++ 类的分析和使用,学完之后将拥有 Qt 图形界面开发的非常坚实的功底。 每个知识点不仅仅会通过视频讲解清楚,并且会配以精心安排的实验和作业,用来保证学习过程中切实掌握核心技术和概念,通过实验来巩固,通过实验来检验,实验与作业的目的是发现问题,发现技术盲点,通过答疑和沟通夯实技术技能。注意:本套视频教程来源于线下的实体班级,因此视频中有少量场景对话和学生问答,对此比较介意的亲们谨慎购买。注意:本套视频教程包含大量课堂源码,包含对应每个知识点的精心编排的作业。由于CSDN官方规定在课程介绍中不能出现作者的联系方式,因此在这里无法直接给出QQ答疑号,视频中的源码、资料和作业文档链接统一在购买后从CSDN平台跟我沟通,我会及时回复跟进。注意:本套视频教程包含全套10套作业题,覆盖所有视频知识点,循序渐进,各个击破,作业总纲如下:下面是部分作业题目展示,每道题都有知识点说明,是检验学习效果的一大利器:(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)…… ……
Qt和SDL是两种不同的程序库,均可用于实现音频播放。下面分别介绍一下在这两种程序库中实现音频播放的方法: Qt通过QMediaPlayer类来实现音频播放。QMediaPlayer类是Qt Multimedia模块的一部分,它可以播放各种媒体文件,包括音频和视频。在使用QMediaPlayer类时,需要先创建一个QMediaPlayer对象,然后调用setMedia方法设置音频文件的路径,最后调用play方法来开始播放音频文件。例如,以下代码可以播放一个MP3文件: ```c++ #include <QtMultimedia/QMediaPlayer> int main(int argc, char *argv[]) { QMediaPlayer player; player.setMedia(QUrl::fromLocalFile("/path/to/file.mp3")); player.play(); return 0; } ``` SDL也提供了音频播放功能。具体来说,可以通过SDL的音频子系统来实现。在使用SDL的音频子系统时,需要先调用SDL_Init函数初始化音频子系统,然后设置音频参数,注册回调函数,最后在回调函数中处理音频数据。以下是一个简单的示例代码,可以播放WAV文件: ```c #include <SDL2/SDL.h> // 回调函数,用于处理音频数据 void audio_callback(void *userdata, Uint8 *stream, int len) { static Uint32 pos = 0; // 当前播放位置 SDL_memcpy(stream, userdata + pos, len); pos += len; } int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_AUDIO); SDL_AudioSpec wav_spec; Uint8 *wav_data; Uint32 wav_length; // 加载WAV文件 SDL_LoadWAV("/path/to/file.wav", &wav_spec, &wav_data, &wav_length); // 设置音频参数 SDL_AudioSpec want, have; SDL_memset(&want, 0, sizeof(want)); want.freq = wav_spec.freq; want.format = AUDIO_S16SYS; want.channels = wav_spec.channels; want.samples = 1024; want.callback = audio_callback; want.userdata = wav_data; // 打开音频设备并开始播放 SDL_OpenAudio(&want, &have); SDL_PauseAudio(0); // 等待音频播放结束 SDL_Delay(wav_length/wav_spec.freq*1000); // 关闭音频设备和释放资源 SDL_CloseAudio(); SDL_FreeWAV(wav_data); return 0; } ``` 综上所述,无论是Qt还是SDL都可以实现音频播放。要根据具体情况选择适合自己的程序库和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值