1.QT中播放视频,录音程序的编写
1 通过process的方式播放视频
T22VideoPlayer.pro |
HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets |
MyWidget.h |
#ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include <QProcess> #include <QSlider> class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); QProcess _process; QWidget _show; QSlider* _slider; signals: public slots: void slotOnSliderChanged(int); }; #endif // MYWIDGET_H |
MyWidget.cpp |
#include "MyWidget.h" #include <QApplication> #include <QVBoxLayout> MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { QVBoxLayout* lay = new QVBoxLayout(this); lay->addWidget(&_show); //添加一个进度条,进度条的方向是水平方向的 lay->addWidget(_slider = new QSlider(Qt::Horizontal)); //滑动条的最小值是0 _slider->setMinimum(0); //滑动条的最大值是100 _slider->setMaximum(100); QString str("mplayer /home/toto/6.wmv -wid "); str+= QString::number(_show.winId()); //通过process的这种方式已经过时了。 _process.start(str); connect(_slider, SIGNAL(valueChanged(int)), this, SLOT(slotOnSliderChanged(int))); } void MyWidget::slotOnSliderChanged(int) { //通过命令的方式移动播放至指定位置 _process.write("ss 600\n"); } int main(int argc,char* argv[]) { QApplication app(argc,argv); MyWidget w; w.show(); return app.exec(); } |
上面的运行结果是可以播放指定的音乐! |
上面的那种方式是过时的,通过下面的方式播放。
2 录音和播放程序案例
T23AudioRecord.pro |
SOURCES += \ main.cpp QT += multimedia CONFIG += C++11 |
录音端程序 |
main.cpp |
#include <QCoreApplication> #include <QAudioInput> #include <QAudioFormat> #include <QFile> #include <QTimer> #include <QAudioDeviceInfo> #include <QDebug> int main(int argc, char* argv[]) { QCoreApplication app(argc, argv); // record audio 设置文件存储的位置 QString audioFileName = "d:\\qt-record.raw"; QFile audioFile(audioFileName); audioFile.open(QFile::ReadWrite); QAudioFormat format; format.setSampleRate(8000); // 设置音道 format.setChannelCount(1); // 设置八位 format.setSampleSize(8); // 设置编解码 format.setCodec("codec/pcm"); // 指定数据模式是大端的还是小端的 format.setByteOrder(QAudioFormat::LittleEndian); QAudioDeviceInfo device = QAudioDeviceInfo::defaultInputDevice(); if(!device.isFormatSupported(format)) { format = device.nearestFormat(format); qDebug() << format.sampleRate(); qDebug() << format.sampleSize(); qDebug() << format.sampleType(); qDebug() << format.codec(); qDebug() << format.byteOrder(); qDebug() << format.channelCount(); } QAudioInput* audio = new QAudioInput(format); //下面表示开始录音了 // audio->start(&audioFile); QIODevice* audioData = audio->start(); audio->setNotifyInterval(200); app.connect(audio, &QAudioInput::notify, [&](){ int bytesReady = audio->bytesReady(); QByteArray ba(bytesReady, 0); ba = audioData->read(bytesReady); audioFile.write(ba); }); QTimer* timer = new QTimer; //录制的声音文件的长度为15秒 timer->setInterval(15000); timer->start(); //下面对audio进行操作,当时间超时之后停止录音 QObject::connect(timer, &QTimer::timeout, [&](){ audio->stop(); audio->deleteLater(); audioFile.close(); app.quit(); }); return app.exec(); } |
运行的时候先开启器此端 在d盘上生成文件 |
T24AudioPlayer.pro |
SOURCES += \ main.cpp QT += multimedia |
main.cpp |
#include <QCoreApplication> #include <QAudioOutput> #include <QAudioFormat> #include <QFile> #include <QDebug> int main(int argc,char *argv[]) { QCoreApplication app(argc, argv); QFile file("d:\\qt-record.raw"); if(!file.open(QFile::ReadOnly)) { qDebug() << "open file error"; exit(0); } QAudioFormat format; format.setSampleRate(8000); format.setSampleSize(8); format.setSampleType(QAudioFormat::SignedInt); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setChannelCount(1); QAudioOutput* output = new QAudioOutput(format); output->start(&file); return app.exec(); } |
运行此部分,发现可以播放音乐! |
1.QT中播放视频,录音程序的编写相关推荐
- Qt中嵌入视频并循环播放方法
Qt中插入视频的方法很多,有QVideoPlayer方法,也有用Phonon的,本篇博客就是描述如何在一个QMainwindow界面中,划出一个区域,播放视频,并可以控制视频的切换.停止.暂停.循环, ...
- 在Winform中播放视频等【DotNet,C#】
在项目中遇到过这样的问题,就是如何在Winform中播放视频.当时考察了几种方式,第一种是直接使用Windows Media Player组件,这种最简单:第二种是利用DirectX直接在窗体或者控件 ...
- 在QT中CXDVA视频组件的例子
在QT中CXDVA视频组件的例子 在windows 平台下,cxdva视频组件可以在Qt.MFC等等框架中嵌入视频播放画面.cxdva视频组件使用起来很简单,只用简单的的调用三四个函数就可以实现播放视 ...
- winform中播放视频?ffplay比MediaPlayer和暴风都好用
如何在winform程序中播放音频和视频?其实方法有不少,我们要做的就是找到一个最好的.最简单的是用系统自带的WindowsMediaPlayer组件(值得欣慰的是,Win10系统仍然可以找到,找不到 ...
- ue4蓝图节点手册中文_在UE4中播放视频
简介: 在日常使用UE4做项目时,会遇到在UE4里播放视频文件的需求,在UE4中可以使用媒体框架(Media Framework)来实现这一功能.这里介绍两种简单的方法来使用这一功能,分别是在场景里播 ...
- vue3中播放视频和m3u8后缀的视频解决办法
vue3中播放视频和m3u8后缀的视频解决办法 ****必须使用 vue@3.2.2及以上版本 使用 这个插件 vue3-video-play 官方地址 地址链接跳转 官方文档 文档地址 npm 安装 ...
- RecyclerView中播放视频
在很多播放视频的APP中都有在列表中播放视频的效果,当点击播放的时候,在列表中播放,当视频列表滑动出屏幕的时候,就在屏幕的右下角播放.大致效果如下图: 主要思路 在和RecyclerView的同级布局 ...
- ckplayer支持html5播放吗,移动端(H5)环境中播放视频需要了解的内容-ckplayer使用方法...
移动端(H5)环境中播放视频需要了解的内容 虽然HTML5(下面简称:H5)的技术已整体趋于成熟,但在视频播放方面,如果跟pc端的flashplayer对比的话,功能就显的非常简单了.如果你决定要让你 ...
- android listview中播放视频,支持全屏
最近在做项目的时候有需求要在 listView 中播放视频,并且支持横竖屏无缝切换,在网上搜索了一下,关于这种 demo真的很少, 有的也只是实现简单的功能,无法满足项目中的需求,想着修改一下凑合用, ...
最新文章
- 安川g7接线端子图_西门子SIWAREX称重模块安装接线注意事项!
- 5G是很快,但也别忘了网络安全问题!
- [渝粤教育] 天津城建大学 混凝土结构设计原理A 参考 资料
- Web测试中容易被忽略的Charset问题
- 在 Mac 上创建和移除替身
- Python库:jieba库中文分词
- 修改Linux系统默认编辑器
- NHibernate中Example类使用注意事项
- C# object 转 Intptr, Intptr 转 object
- SIP协议之术语定义
- 建筑智能化集成系统及架构简介
- DX11:先定一个小目标,比如:把DX11龙书上的知识点系统的总结下来
- PTA7-4 考试周
- 三菱运动控制电子凸轮应用 三菱Q173系列的电子凸轮使用,包括凸轮参数设置
- 端口渗透——21端口FTP
- mysql本机ip一般是多少_localhost简介、localhost与 127.0.0.1 及 本机IP 的区别
- zabbix_agentd_window端运行报错cannot connect to Service Manager: [0x00000005]
- 【等保小知识】安全等保是什么意思?是ccrc吗?
- http协议及apache配置
- mysql安全性案例分析_MySQL实例crash的案例分析
热门文章
- Java8 ArrayBlockingQueue 源码阅读
- wxWidgets:wxAUI 概述
- boost::process::posix相关的测试程序
- boost::mp11::mp_eval_or相关用法的测试程序
- boost::prior用法的测试程序
- GDCM:gdcm::CompositeNetworkFunctions的测试程序
- ITK:Mersenne Twister随机数生成器
- VTK:Rendering之MotionBlur
- VTK:图片之ResizeImageDemo
- VTK:图片之ImageDivergence