当前位置: 首页 > news >正文

网站建设要什么知识长沙有哪些知名网站

网站建设要什么知识,长沙有哪些知名网站,建设监理工程师网站,百度输入法免费下载目录 引言 一、QtMultimedia模块简介 主要类和功能 二、QtMultimedia相关类及函数解析 QAudioInput QAudioOutput QAudioFormat QMediaPlayer QMediaPlaylist QCamera 三、音频项目实战Demo UI界面 核心代码 运行结果 四、结论 引言 在数字时代#xff0c;音频…目录 引言 一、QtMultimedia模块简介 主要类和功能 二、QtMultimedia相关类及函数解析 QAudioInput QAudioOutput QAudioFormat QMediaPlayer QMediaPlaylist QCamera 三、音频项目实战Demo UI界面 核心代码 运行结果 四、结论 引言 在数字时代音频处理成为多媒体应用、实时通信和娱乐产业中不可或缺的一部分。Qt作为一种跨平台的C应用程序开发框架提供了强大的多媒体处理能力特别是其QtMultimedia模块为开发者提供了丰富的API来处理音频和视频。本文将详细介绍QT音频基础知识特别是QtMultimedia模块的使用及相关函数解析。 一、QtMultimedia模块简介 QtMultimedia模块是Qt库中的一个重要模块专门用于处理多媒体内容如音频和视频。它提供了一组丰富的QML类型和C类支持音频和视频的采集、播放、录制和处理。QtMultimedia模块不仅支持基本的音频和视频播放还提供了编解码、格式转换等高级功能。 // 在.pro文件中加入模块QT multimedia主要类和功能 QAudioInput用于音频数据的采集。开发者可以通过这个类从麦克风等音频输入设备获取原始音频数据。QAudioOutput用于音频数据的播放。它允许开发者将音频数据输出到扬声器等音频输出设备。QAudioFormat用于定义音频数据的格式包括采样率、样本大小、声道数等关键参数。QMediaPlayer提供音频和视频文件的播放功能支持多种媒体格式如MP3、WAV、AVI、MP4等。QMediaPlaylist允许开发者创建、编辑和播放一个包含多个媒体文件如音频或视频的列表。可以轻松地实现连续播放、随机播放或单曲循环等。QCamera虽然主要用于视频处理但也涉及音频采集特别是与视频同步的音频数据。 二、QtMultimedia相关类及函数解析 QAudioInput 功能 QAudioInput类用于音频数据的采集。它提供了一个接口允许开发者从音频输入设备如麦克风获取原始音频数据。 主要方法和属性 start()开始音频数据的采集。stop()停止音频数据的采集。bytesReady()返回缓冲区中可读的字节数。read()从缓冲区读取音频数据。notify()设置当有新数据可读时发出的通知。 QAudioOutput 功能 QAudioOutput类用于音频数据的播放。它允许开发者将音频数据输出到音频输出设备如扬声器。 主要方法和属性 start()开始音频数据的播放。stop()停止音频数据的播放。write()将音频数据写入播放缓冲区。bytesFree()返回播放缓冲区中可用的字节数。periodSize()返回播放缓冲区的周期大小。 QAudioFormat 功能 QAudioFormat类用于定义音频数据的格式。它包含了采样率、样本大小、声道数等关键参数用于描述音频数据的属性。 主要方法和属性 setSampleRate()设置采样率。setChannelCount()设置通道数。setSampleSize()设置样本大小。setCodec()设置音频编码器。setByteOrder()设置字节序。setSampleType()设置样本类型如有符号整数、无符号整数、浮点数等。 QMediaPlayer 功能 QMediaPlayer类提供音频和视频文件的播放功能。它支持多种媒体格式如MP3、WAV、AVI、MP4等并提供了丰富的API来控制媒体的播放。 主要方法和属性 setMedia()设置要播放的媒体文件或媒体内容。play()开始播放媒体。pause()暂停播放媒体。stop()停止播放媒体。volume()获取或设置播放音量。position()获取当前播放位置。duration()获取媒体的总时长。 QMediaPlaylist 功能QMediaPlaylist类提供了一个管理媒体播放列表的接口。它允许开发者创建、编辑和播放一个包含多个媒体文件如音频或视频的列表。通过QMediaPlaylist可以轻松地实现连续播放、随机播放或单曲循环等功能。 主要方法和属性 addMedia(const QMediaContent content)向播放列表中添加一个媒体文件。QMediaContent是一个包含媒体文件位置如URL或文件路径和其他相关信息的类。 insertMedia(int index, const QMediaContent content)在播放列表的指定位置插入一个媒体文件。 removeMedia(int index)从播放列表中移除指定位置的媒体文件。 moveMedia(int from, int to)在播放列表中移动媒体文件的位置。 clear()清空播放列表中的所有媒体文件。 setCurrentIndex(int index)设置当前播放的媒体文件在播放列表中的索引。 currentIndex()获取当前播放的媒体文件在播放列表中的索引。 playbackMode()获取播放列表的播放模式如顺序播放、随机播放或单曲循环。 setPlaybackMode(QMediaPlaylist::PlaybackMode mode)设置播放列表的播放模式。 mediaCount()获取播放列表中的媒体文件数量。 media(int index)获取播放列表中指定位置的媒体文件信息。 next()播放下一个媒体文件。 previous()播放上一个媒体文件。 QCamera 功能 QCamera类主要用于视频处理但也涉及音频采集特别是与视频同步的音频数据。它提供了访问和控制相机设备的接口。 主要方法和属性与音频相关 start()开始相机的预览或捕获会话这可能包括音频采集。stop()停止相机的预览或捕获会话。audioRecorder()获取与相机关联的音频录制器对象用于控制音频的录制。setAudioEncoderSettings()设置音频编码器的参数。 三、音频项目实战Demo UI界面 核心代码 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow#include QMediaPlayer #include QMediaPlaylist #include QFileDialogQT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();private:Ui::MainWindow *ui;QMediaPlayer *player;QMediaPlaylist *playlist;QString drtTime; // 播放时长QString pstTime; // 播放位置private slots:void onstatechanged(QMediaPlayer::State state); // 按钮切换状态void onplaylistchanged(int pos); // 播放列表void ondrtchanged(qint64 drt); // 歌曲总时长void onpstchanged(qint64 pos); // 播放歌曲当前位置void on_pushButton_open_clicked();void on_pushButton_play_clicked();void on_pushButton_pause_clicked();void on_pushButton_stop_clicked();void on_pushButton_pre_clicked();void on_pushButton_next_clicked();void on_pushButton_volumn_clicked();void on_horizontalSlider_volumn_valueChanged(int value);void on_horizontalSlider_speed_valueChanged(int value); }; #endif // MAINWINDOW_H#include mainwindow.h #include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);player new QMediaPlayer(this);playlist new QMediaPlaylist(this);playlist-setPlaybackMode(QMediaPlaylist::Loop); // 循环播放player-setPlaylist(playlist);connect(player, SIGNAL(stateChanged(QMediaPlayer::State)),this,SLOT(onstatechanged(QMediaPlayer::State)));connect(player, SIGNAL(positionChanged(qint64)),this,SLOT(onpstchanged(qint64)));connect(player, SIGNAL(durationChanged(qint64)),this,SLOT(ondrtchanged(qint64)));connect(playlist,SIGNAL(currentIndexChanged(int)),this,SLOT(onplaylistchanged(int)));}MainWindow::~MainWindow() {delete ui; }void MainWindow::onstatechanged(QMediaPlayer::State state) // 按钮切换状态 {ui-pushButton_play-setEnabled(!(stateQMediaPlayer::PlayingState));ui-pushButton_pause-setEnabled(stateQMediaPlayer::PlayingState);ui-pushButton_stop-setEnabled(stateQMediaPlayer::PlayingState); }void MainWindow::onplaylistchanged(int pos) // 播放列表 {ui-listWidget-setCurrentRow(pos);QListWidgetItem *item ui-listWidget-currentItem();if(item){ui-label_name-setText(item-text());} }void MainWindow::ondrtchanged(qint64 drt) // 歌曲总时长、更新变化 {ui-horizontalSlider_speed-setMaximum(drt);int sec drt/1000; //总秒int min sec/60; //分sec sec%60; //余秒drtTime QString::asprintf(%02d:%02d,min,sec);ui-label_time-setText(drtTime); }void MainWindow::onpstchanged(qint64 pos) // 播放歌曲当前位置 {if(ui-horizontalSlider_speed-isSliderDown())return;ui-horizontalSlider_speed-setSliderPosition(pos);int sec pos/1000; //总秒int min sec/60; //分sec sec%60; //余秒pstTime QString::asprintf(%02d:%02d,min,sec);ui-label_speed-setText(pstTime); }void MainWindow::on_pushButton_open_clicked() {// 添加歌曲文件QString currentpath QDir::currentPath();QString dlgtitle 请选择音频文件;QString strfilter 所有文件(*.*);;音频文件(*.mp3 *.wav);;mp3文件(*.mp3);;wav文件(*.wav);QStringList filelist QFileDialog::getOpenFileNames(this,dlgtitle,currentpath,strfilter);if(filelist.count() 1)return;for (int i 0; i filelist.count(); i) {QString afile filelist.at(i);playlist-addMedia(QUrl::fromLocalFile(afile)); // 添加文件QFileInfo fileinfo(afile); // 获取文件信息ui-listWidget-addItem(正在播放fileinfo.fileName()); // 将文件名称添加到listwidget控件上if(player-state() ! QMediaPlayer::PlayingState)playlist-setCurrentIndex(0); // 默认添加进来第一首播放player-play();} }void MainWindow::on_pushButton_play_clicked() {if(playlist-currentIndex() 0) // 没选择歌曲默认播放第一首歌playlist-setCurrentIndex(0);player-play(); }void MainWindow::on_pushButton_pause_clicked() {player-pause(); }void MainWindow::on_pushButton_stop_clicked() {player-stop(); }void MainWindow::on_pushButton_pre_clicked() {playlist-previous(); }void MainWindow::on_pushButton_next_clicked() {playlist-next(); }void MainWindow::on_pushButton_volumn_clicked() {// 控制静音状态bool mutex player-isMuted();player-setMuted(!mutex);if(mutex){ui-pushButton_volumn-setIcon(QIcon(:/images/1.PNG));}elseui-pushButton_volumn-setIcon(QIcon(:/images/2.PNG)); }void MainWindow::on_horizontalSlider_volumn_valueChanged(int value) {player-setVolume(value); }void MainWindow::on_horizontalSlider_speed_valueChanged(int value) {player-setPosition(value); }运行结果 经过测试后按钮暂停停止上一曲下一曲和静音音量和进度条等功能都可以实现。 四、结论 QtMultimedia模块为开发者提供了强大的音频处理能力通过QAudioInput、QAudioOutput等类可以轻松实现音频的采集、播放和处理。了解音频处理的基础概念和QtMultimedia模块的使用对于开发多媒体应用程序至关重要。希望本文能为开发者们提供一些有用的参考和帮助。 传送门QT多媒体编程二——视频编程知识详解及mp4视频播放器Demo
http://www.hkea.cn/news/14380168/

相关文章:

  • 建立网站需要备案吗免费制作微网站
  • 网站开发实训心得体会大数据营销策略有哪些
  • 网站查询平台windows软件开发工具
  • 常州专业网站建设爆破wordpress密码
  • 通过高新区网站建设搜索排名广告营销怎么做
  • 义乌网站建设制作商货代网站建设
  • ps做分享类网站效果图著名办公空间设计公司
  • iis 网站无法访问成都建设信息网官网
  • 临泉建设网站仪征 做网站
  • 使用flashfxp上传网站涟源seo快速排名
  • 如何运营垂直网站网站名字怎样做版权
  • 如何做企业网站建设汝州市住房和城乡建设局网站
  • 西安小程序搭建福州seo排名公司
  • 陶瓷行业网站建设招标书网站建设文字
  • 怎么用flash做视频网站燕郊网站制作多少钱
  • 如何自己编写网站百度小程序云开发
  • angularjs网站模板中职计算机专业主要学什么
  • 有个虚拟服务器建设网站优化设计答案六年级上册
  • 连山网站建设网站建设公司收费
  • 手机版传奇网站北京建行网站
  • iis不用dns解析还有什么办法也能一个ip对应多个网站吗学习编程
  • 做网站那个公司网站背景音乐怎么做
  • 网站开发要多长时间金牛网站建设
  • 2018网站建设wordpress适合下载站的主题
  • wordpress做后端上海企业网站优化公司
  • 公司网站开发哪家好建设股份有限公司
  • 门户网站 建设方案国外怎么做直播网站吗
  • 东莞高端网站定制杭州数据推广
  • sae 安装新版wordpressseo顾问服务公司
  • 网站建设赵玉敏世界优秀摄影作品网站