PyQt5选择播放哪个音频设备输出
此简单的代码将具有一个GUI按钮,当按下时将播放example.mp3到默认的音频输出设备. import sys from PyQt5 import QtCore, QtMultimedia from PyQt5.QtMultimedia import QAudio, QAudioDeviceInfo from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QComboBox class SimplePlay(QWidget): def __init__(self): super().__init__() self.player = QtMultimedia.QMediaPlayer() url = QtCore.QUrl.fromLocalFile(QtCore.QDir.current().absoluteFilePath("example.mp
26 2024-03-19
编程技术问答社区
如何使用Qt 5.1获得歌曲的长度?
如何在QT 5.1 API中获得歌曲的长度?我想我可以使用Length元数据阅读它,但我不确定是否可以使用此元数据. 解决方案 您似乎正在寻找duration属性. 这将是QML解决方案: 此属性以毫秒为单位. 如果媒体没有固定的持续时间(例如,实时流)将是0. 这将是C ++解决方案: 在微秒中返回此缓冲区中音频的持续时间. 这取决于/l格式()和framecount(). 其他解决方案 您可以使用QMediaPlayer的另一种方法.一个例子是: QMediaPlayer *player = new QMediaPlayer; player->setMedia(QUrl::fromLocalFile("C:/Users/Music/mySong.mp4")); qDebug()
32 2024-03-19
编程技术问答社区
我有两个网络摄像机,但QCameraInfo::availableCameras返回空数组
根据文档,QCameraInfo::availableCameras应返回可用摄像机的列表.根据文档,没有捕获. 但是,我仍然有两个网络摄像头,可用摄像机的数组被返回空.我能做些什么?这甚至是在编程范围中,还是这意味着QT仅支持网络摄像头的有限子集? 我现在正在使用的操作系统是Windows 7x64. 解决方案 我也有这个问题. 我发现一旦您声明了qcamera对象,它将返回正确的信息. 这样:` QCamera *cam = new QCamera; qDebug()
24 2023-12-07
编程技术问答社区
Qt 5.2.0 相机服务缺失
我有一个Logitech HD网络摄像头C270. 我想编写一个简单的网络摄像头应用程序,因此我尝试编译QT摄像机示例(qt \ qt5.2.0 \ 5.2.0 \ msvc2010_opengl \ xpleass \ Multimediawidgets \ camera). ). ). 我的开发系统是Windows 7 X64 SP1虚拟机.如果网络摄像头连接到此VM,则示例运行良好. QT和Windows设备管理器将网络摄像头视为" USB视频设备". 当我尝试在我的非虚拟系统(也是Win7 X64 SP1)上运行编译的二进制文件时,应用程序说"摄像机服务丢失了"(是的,我从虚拟机上断开了相机的连接).在此系统上,相机被检测为" Logitech HD网络摄像头C270 " 我也有第二个带有Win7 X64 SP1的笔记本 - 在这里相同的问题. 当我使用另一个工具(dorgem.cvs.sourceforge.net/viewvc/dorgem/dorge
20 2023-12-05
编程技术问答社区
在Linux上用QtMultimedia部署Qt应用程序
我尝试在Linux(Ubuntu 14.04)上部署应用程序QT(5.3),该应用程序使用qtmultimedia 我首先部署了一个简单的应用程序(Hello World)来理解.如果没有安装QT,我毫无问题地在PC上运行该应用程序. 以同样的方式,我试图将整个应用都雇用,但是当我要执行我的应用程序时我有问题: QQmlApplicationEngine failed to load component qrc:/main.qml:3 module "QtMultimedia" is not installed 我知道这个问题出现在qtmultimedia上,但我找不到我忘记的库. 我有项目部署的树: - myApp/. - libs - libQt5Multimedia.so.5.3.1 - libQt5MultimediaQuick_p.so.5.3.1 - libQt5MultimediaWidgets.so.
24 2023-11-30
编程技术问答社区
在提供的时间内获得视频帧Qt
我想做的是在某个时候获取视频框架(例如20秒). 我知道我可以做这样的事情 - 倒带视频并暂停: QMediaPlayer* player = new QMediaPlayer; ... player->play(); player->setPosition(20000); player->pause(); 但是是否有一些更优雅的解决方案(这对我来说似乎是一个黑客,因为iem 不需要整个视频,但在某个时候只是帧)? )? 解决方案 以下步骤可以帮助您从视频文件中捕获框架. 项目级 qt +=多媒体 代码级 启动qmediaplayer对象(qmediaplayer(qobject parent,qmediaplayer :: videosurface) 将qmediaplayer.setVideoOutput设置为(qabstractvideosurface的子类) qabstractVideOsurface的子类应重新实现支持的pixel
18 2023-11-18
编程技术问答社区
没有可用的解码器类型'视频/x-h264
我试图在没有任何修改的情况下运行QT示例应用程序之一.它称为player,它是一个多媒体小部件演示.我的系统是Ubuntu 16.04 64位.当我尝试播放视频时,我在控制台中看到以下错误: No decoder available for type 'video/x-h264 尝试了两个不同的视频后的完整错误: Starting /home/aras/Qt5.7.0_Sept2016/Examples/Qt-5.7/multimediawidgets/build-player-Sept2016-Debug/player... Warning: "No decoder available for type 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3, profile=(string)constrained-baseline, codec_data=(buf
6 2023-11-18
编程技术问答社区
VideoOutput QML的自定义源属性
确切需要做些什么才能为VideoOutput qml对象提供自定义帧源? VideoOuput本身为"源"提供了QAbstractVideoSurface类的实例? QT5文档说明了有关提供此问题的事情: 如果您要扩展自己的C ++类以与 videoutput,您可以提供一个基于qobject的类 MediaObject属性公开了QMediaObject派生的类 有一个QVIDEORENDERERCORTROL可用,或者您可以提供一个Qobject 基于可写的视频表情属性的基础类,可以接受 基于QabtractVideOsurface的类,可以遵循正确的协议 要向它传递QVideoframes. 根据以下文档,我进行了以下操作: 我暗示了自己的班级myFrameProvider源自QObject具有写入videoSurface属性的QObject 将连接到以下类的类将帧发送到MyFrameProvider. Instantianted myFramePr
32 2023-11-18
编程技术问答社区
QMediaPlayer在Ubuntu 16.04/Qt 5.6上不能播放任何东西
我正在使用Ubuntu上的官方QT 5.6 SDK 16.04,当我尝试播放mp3文件时,我会得到: defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" 代码很简单: mMediaPlayer->setMedia(QUrl::fromLocalFile(myMp3File)); mMediaPlayer->play(); 这在Android上起作用,并且以前在我的Ubuntu 14.04机器上使用.我想念什么?默认情况下,所有必需的GStreamer(通过文档)的内容似乎已经安装了,但它仍然不起作用: $ dpkg -l | grep gstream ii gir1.2-gstreamer-1.0 1.8.2-1~ubuntu1
26 2023-11-02
编程技术问答社区
QAudioDeviceInfo在Ubuntu上没有发现默认的音频设备
我正在尝试从/a>,但QT找不到默认的音频设备. 运行此代码显示没有输出: foreach (const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) qDebug() #include #include 关于我可能做错了什么的想法? 解决方案 它是用简单命令固定的: sudo apt-get install lib
98 2023-11-01
编程技术问答社区
Qt iOS: 如何从QVideoFilterRunnable返回具有GLTextureHandle类型的QVideoFrame
我正在尝试捕获相机输出框架并在GPU管道中进一步处理.因此,将框架作为GPU纹理是最好的选择.从 qvideofilterrunnable "> qvideofilterrunnable . rel =" nofollow"> qvideoframe 对象的类型不等于 qabstractVideObuffer :: gltexturehandle .它等于NoHandle,我需要通过glTexImage手动进行映射/UNMAP和加载纹理,这对性能不利.是否可以使用任何控制选项来返回纹理名称? 一些笔记: 在Android上看起来不错.返回的框架是纹理,所以这就像魅力一样: QVideoFrame* input = ...; GLuint texture = input->handle().toUInt(); f->glBindTexture(GL_TEXTURE_2D, texture); 通常,有iOS纹理缓存功能: CVPixelBufferRef pi
16 2023-10-19
编程技术问答社区
模块 "QtMultimedia "未安装
我已经使用常规 apt-get install 方法在覆盆子PI 3上安装了QT和QTCreator.一切似乎都可以正常工作,除非我尝试构建声明相机示例或其他多媒体示例,否则我会遇到一个错误.然后弹出空的白色应用程序窗口. 我已经尝试安装和重新安装所有必需的软件包,例如libqt5multimedia5,qtmultimedia5-dev,etc,它只是说它们是使用最新版本安装的. 有人成功地获得了QT多媒体在Raspberry Pi上工作吗? 编辑: 我尝试使用建议的解决方案: sudo apt-get install qtdeclarative5-qtmultimedia-plugin 这给了我一个错误: E: Unable to locate package qtdeclarative5-qtmultimedia-plugin 解决方案 这似乎可以运行以下命令: sudo apt-get install libqt5multimedia5-p
30 2023-07-28
编程技术问答社区
强制 QMediaPlayer 为视频刷屏应用程序准确更新位置?
我正在编写一个应用程序,该应用程序将允许用户通过打开的视频擦洗.使用QT 5.3在Windows 7/8上开发,我一直在使用QMediaPlayer和QVideoWidget qvideowidget示例项目.结果非常好,只是QVideoWidget似乎只是在空闲时间更新.尽管如此,这还是一个很好的开始,也是可用的. 但是,当我在Mac OS 10.10(再次使用QT 5.3)上构建时,擦洗的行为似乎每秒只有一个帧.当我拖动"位置"滑块时,视频在一秒钟后从一个框架跳到框架,然后一秒钟,即使我几次在这两个帧之间进行位置,即使我打电话给QMediaPlayer::setPosition. . 可以使用videowidget用QT 5.3发货的示例来复制问题:Qt\Examples\Qt-5.3\multimediawidgets\videowidget.当滑块拖动在Windows机器上时,QVideoWidget在间距相当靠近的框架之间移动.当将滑块拖到Mac上(至少在我的Ma
24 2023-07-25
编程技术问答社区
QT 中的未知模块:多媒体
我已经下载了QT- everywhere-opensource-src-5.4.1并构建和安装静态. 接下来,我构建了Qmultimedia并安装了. 我从.pro中从.pro中获得"未知模块". QT +=多媒体. 我有qtmultimedia,qtmultimediaquick_p和qtmultimediawidgets中的/usr/local/qt-5.4.1/include. 也有/usr/local/qt-5.4.1/plugins中的MediaService,playlistformats 还具有qtmobility,qtmultimediakit in/usr/include 我正在运行Ubuntu 15.0 我发现的所有相关问题都没有帮助. 解决方案 请运行: sudo apt-get install qtmultimedia5-dev 之后,您可以根据需要安装其他多媒体软件包,但这一般可以启用多媒体.
20 2023-07-25
编程技术问答社区
Qt6 和多媒体模块
正如我在QT6中看到的,不再使用多媒体API.我对吗?在QT6中,对于播放声音这样的简单任务,我现在应该查看第三方库吗? 是正确的吗? 解决方案 qt6是一个很大的变化,因此出于兼容性原因QT不提供此模块,它将在QT 6.2中提供此帖子:附加支持第三方图书馆. QT 6.2我们计划提供以下额外 图书馆: QT蓝牙 QT数据可视化 qt lottie动画 QT多媒体 QT NFC QT定位 QT快速对话框:文件夹,消息框 QT远程对象 QT传感器 qt serialbus QT Serialport QT WebChannel QT WebEngine QT Websockets QT WebView (强调矿山) 其他解决方案 QT多媒体是(再次) qt 6.2 . 注意,尽管该模块正在经历实质性的重写.有关更多详细信息,请参见例如 porting文档.
34 2023-07-25
编程技术问答社区
QML 摄像机的媒体对象属性无效/未定义
我正在尝试创建一个在C ++中定义的QML项目,该项目将在QML Camera中拦截它们在A VideoOutput显示之前.类似: Window { Camera { id: camera } MyFrameinterceptor { id: myprocessing source: camera.mediaObject } VideoOutput { id: feedback source: myprocessing } } 根据但是,当我尝试访问QML的MediaObject时,例如用 Text { text: qsTr(camera.mediaObject.objectName) } 我得到TypeError: Cannot read property 'objectName' of undefined 当我尝试使用C +
14 2023-07-25
编程技术问答社区
QtQuick:无法在嵌入式Linux上播放任何视频
i使用Ti提供的工具链与他们的SDK 6.00.00交叉编译了Ti AM335X板的QT 5.2.1. 不幸的是,我无法在qml中复制任何视频... 调试控制台告诉: defaultServiceProvider::requestService(): no service found for – “org.qt-project.qt.mediaplayer” 在交叉兼容中是否缺少一些东西?也许有些依赖性? 有人可以帮助我确定我缺少什么吗? 您可以找到在这里我的cross-compilation配置和在这里设置环境变量QT_DEBUG_PLUGIN 时,应用程序产生的完整踪迹 解决方案 您缺少QTmultimedia后端,实际上可以播放音频.它要么未安装到正确的目录中,要么未构建.由于您的日志输出说明了一个后端(一个音频捕获一个),因此我排除了一个安装问题. 您需要使用适当的依赖项来重建QTmultimedia.例如,当在构建QTmultimedia
30 2023-07-17
编程技术问答社区
在Mac OS (10.9)上从自定义的QIOD设备上传输加密的QMediaplayer流。
我目前正在将QT4(.8.4)的应用程序移植到QT5(.2.0). 我几乎完成了所有已知的更改,例如defered to to cascii()函数,缺少qtgui等.现在,我们使用了一个音乐播放器,它使用了不再支持的声子框架,并被QTmultimedia模块所取代,包括QMediaPlayer和一堆音频处理课程. 我们对玩家的实现采用自定义Qiodevice.该设备为磁盘上加密的录音机提供了一个接口.现在,玩家向设备询问X字节,该设备从加密文件中读取,解密播放器要求的字节并返回它们. 现在,我在多媒体模块中搜索了一个函数以重复使用我的iodevice并找到了以下功能: void setMedia(const QMediaContent & media, QIODevice * stream = 0) 并将其使用如下: m_pDecryptingMediaDevice = new BYIODevice(filename); m_pDecryptingM
8 2023-07-17
编程技术问答社区
如何在Qt中把带有YUV数据的'QVideoFrame'转换为带有RGBA32数据的'QVideoframe?
i从网络摄像头接收QVideoFrames,它们以 yuv 格式(QVideoFrame::Format_YUV420P)中包含图像数据.如何使用QVideoFrame::Format_ARGB32或QVideoFrame::Format_RGBA32? 将这样的框架转换为一个框架 我可以在 qt5 中仅使用现有功能而不会降低水平而做到这一点? 示例: QVideoFrame convertFormat(const QVideoFrame &inputframe, QVideoFrame::PixelFormat outputFormat) { // What comes here? } //Usage QVideoFrame converted = convertFormat(mySourceFrame, QVideoFrame::Format_RGB32); 解决方案 我找到了一种内置在qt5 中的解决方案,但是 qt . 这是如何解决的方法:
74 2023-07-17
编程技术问答社区
即使视频播放失败,QMediaPlayer::error()也不会被发射出来。
我正在连接QMediaPlayer::error()信号并尝试播放视频文件: QMediaPlayer *player = new QMediaPlayer; QMediaPlaylist *playlist = new QMediaPlaylist(player); playlist->addMedia(QUrl::fromLocalFile("/path/to/file.mp4")); QVideoWidget *videoWidget = new QVideoWidget; player->setVideoOutput(videoWidget); videoWidget->resize(640, 340); videoWidget->show(); ErrorPrinter *errorPrinter = new ErrorPrinter(player); QObject::connect(player, SIGNAL(error(QMediaPlayer::Error)
20 2023-07-17
编程技术问答社区