1.QT中播放视频,录音程序的编写
1
通过process的方式播放视频
|
T22VideoPlayer.pro |
|
HEADERS MyWidget.h SOURCES MyWidget.cpp QT |
|
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); 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)); // _slider->setMinimum(0); // _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 CONFIG |
|
录音端程序 |
|
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; //秒 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中播放视频,录音程序的编写的更多相关文章
- 在Winform中播放视频等【DotNet,C#】
在项目中遇到过这样的问题,就是如何在Winform中播放视频.当时考察了几种方式,第一种是直接使用Windows Media Player组件,这种最简单:第二种是利用DirectX直接在窗体或者控件 ...
- unity中播放视频
unity中播放视频步骤如下: 1.将要播放的视频拖入projec.(注意:unity一般支持的视频格式有mov, .mpg, .mpeg, .mp4,.avi, .asf格式 ) 2.在场景中添加 ...
- Windows Media Player播放视频导致程序闪退
在有的电脑上发现,使用Windows Media Player组件播放视频导致程序闪退. 发现是显卡问题,独立显卡换成集成显卡 解决: 打开显卡控制面板->管理3D设置->集成图形-> ...
- WinForm中播放视频示例(含源码)
1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是直接使用微软的WM控件,也是通过COM方式集 ...
- 基于ALSA的WAV播放和录音程序
http://blog.csdn.net/azloong/article/details/6140824 这段时间在探索ALSA架构,从ALSA Core到ALSA Lib,再到Android Aud ...
- 手机浏览器,微信中播放amr录音
由于微信公众号开发中,临时素材只有三天的有效期,但是客户要求所有录音永久保存,永久素材数量又有限制,故只能把录音保存到服务器上.但是存到服务器上有一个问题,手机微信中无法直接播放amr录音.无意中发现 ...
- Unity3D中播放视频的方法
播放视频其实和贴图非常相像,因为播放视频用到的 MovieTexture 属于贴图 Texture 的子类.Unity3D 支持的视频格式有很多,但是还是建议使用 ogv 格式的视频,使用其他格式依然 ...
- 用flvplayer.swf在网页中播放视频(网页中flash视频播放的实现)
原:http://blog.csdn.net/ricciozhang/article/details/46868201 由于公司项目的需求,需要在展示一些信息的时候能够播放视频,拿到这个要求,我就从最 ...
- Opencv从文件中播放视频
1.VideoCapture()括号中写视频文件的名字,在播放每一帧的时候,使用cv2.waitKey()设置适当的持续时间,太低会播放的很快,太高会很慢,通常情况下25毫秒就行了. 2.获取相机/视 ...
随机推荐
- Codeforces Round#433 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了 突然想上点分 就打了一场Div1 没想到打到了rank5 一发上橙了,可还行. ...
- SpringCloud学习之feign
一.关于feigin feigin是一种模板化,声明式的http客户端,feign可以通过注解绑定到接口上来简化Http请求访问.当然我们也可以在创建Feign对象时定制自定义解码器(xml或者jso ...
- django rest-framework 1.序列化 二
在上一节说了Serializers的使用类似Django的From,在Django中有From也有ModelFrom,Serializers也是有个ModelSerializers,下面在讲讲rest ...
- Prim算法的简单分析
Prim算法主要的思路:将点集一分为二,通过找到两个点集之间的最短距离,来确定最小生成树,每次确定最短距离后,对两个点集进行更新. 具体的实现过程:难点就是如何找到两个点集之间的最短距离,这里设置两个 ...
- html下载excel模板
只需要href等于模板存放的路径即可 <a href="../../TempLate/Attitude.xlsx" class="easyui-linkbutton ...
- 一口一口吃掉Hibernate(五)——一对多单向关联映射
版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载请声明:[转自 http://blog.csdn.net/xiaoxian8023 ] 在上一篇博客<一口一口吃掉Hibernate( ...
- 开启CSP网页安全政策防止XSS攻击
一.简介 CSP是网页安全政策(Content Security Policy)的缩写.是一种由开发者定义的安全性政策申明,通过CSP所约束的责任指定可信的内容来源,(内容可以是指脚本.图片.sty ...
- Luogu P1226 取余运算||快速幂_快速幂
超短代码 #include<iostream> #include<cstdio> using namespace std; long long b,p,k; long long ...
- Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013
折腾了三天终于配置成功了,在此写下编译配置的全部步骤和遇到的很多坑. 整体介绍: OpenCV 中 CUDA 实现的函数还不是太多,使用前要在OpenCV的官网上确认以下你想要的功能是否已经实现,否则 ...
- 如何处理IO
Network I/O operations in user code should only be done through the Nginx Lua API calls as the Nginx ...