标签: qtmultimedia

QT中的未知模块:多媒体

我已经下载了qt-everywhere-opensource-src-5.4.1并构建并安装了静态.接下来我构建了QMultimedia并进行了安装.

当包括QT + =多媒体时,我从.pro获得"QT中的未知模块:多媒体".

我在/usr/local/Qt-5.4.1/include中有QtMultimedia,QtMultimediaQuick_p和QtMultimediaWidgets.在/usr/local/Qt-5.4.1/plugins中也有mediaservice,playlistformats在/ usr/include中也有QtMobility,QtMultimediaKit

我正在运行Ubuntu 15.0

我发现的所有相关问题都无济于事.

c++ qt qtmultimedia

5
推荐指数
1
解决办法
5297
查看次数

QAudioDecoder - 未找到服务

我正在尝试使用QAudioDecoder类解码.wav文件。尽管我通过添加将QtMultimedia模块包含到我的.pro文件中, 但我收到了一个错误,即未找到QAudioDecoder 的服务。我看不出问题出在哪里。QT += multimedia

我在 Windows 7 上使用 Qt 5.1.0 和 MingGW 4.8 32 位。

错误信息:

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.audiodecode"

.pro文件:

QT       += core
QT       += multimedia
QT       -= gui

TARGET = test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app
SOURCES += main.cpp
Run Code Online (Sandbox Code Playgroud)

文件:

#include <QCoreApplication>
#include <QAudioDecoder>
#include <QAudioBuffer>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString pathToFile …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtmultimedia

4
推荐指数
1
解决办法
3269
查看次数

QML Camera 的无效/未定义 mediaobject 属性

我正在尝试创建一个用 C++ 定义的 QML 项,它会在 QML 中的帧CameraVideoOutput. 就像是:

Window {
    Camera {
        id: camera
    }

    MyFrameinterceptor {
        id: myprocessing
        source: camera.mediaObject
    }

    VideoOutput {
        id: feedback
        source: myprocessing
    }
}
Run Code Online (Sandbox Code Playgroud)

根据此注释,项目的mediaObject 属性Camera可用于访问Camera.

但是,当我尝试从 QML 访问 mediaObject 时,例如

Text {
    text: qsTr(camera.mediaObject.objectName)
}
Run Code Online (Sandbox Code Playgroud)

当我TypeError: Cannot read property 'objectName' of undefined 尝试使用 C++ 中的camera.mediaObject 属性时,我收到类似的消息,让我认为 mediaObject 未定义、未初始化或不存在。

我是 Qt 的新手,所以我可能会错过一些非常愚蠢的东西,比如启动相机或其他什么......但我对一个MediaPlayer项目有同样的问题

如何从 C++ 访问 QML Camera 的 mediaObject?

c++ qt qml qt5 qtmultimedia

3
推荐指数
1
解决办法
819
查看次数

从打开的文件中获取文件名,而不是文件路径

假设我使用文件对话框在 PyQt5 应用程序中打开了一个名为 file1.mp3 的文件,并将其分配给这样的变量:

song = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song[0])
url = QUrl.fromLocalFile(song[0])
self.playlist.addMedia(QMediaContent(url))
Run Code Online (Sandbox Code Playgroud)

如何获取文件名而不是文件路径,以便我可以在状态栏中显示它?或者更好的是,是否有我可以使用或创建的类似“正在播放”的功能?

python pyqt pyqt5 qtmultimedia

3
推荐指数
1
解决办法
8853
查看次数

错误:没有名为“PyQt5.QtMultimedia”的模块

我正在尝试构建一个集成视频的 GUI,为此我需要导入 PyQt5.QtMultimedia。然而,当尝试导入模块(导入 PyQt5.QtMultimedia)时,我收到错误:ModuleNotFoundError:没有名为“PyQt5.QtMultimedia”的模块。

我正在使用 Ubuntu 18.04,我的 Python 包来自 Anaconda。“conda list”命令报告 pyqt 已正确安装,版本 5.9.2。到目前为止,所有其他 PyQt5 导入都工作正常,实际上只有 PyQt5.QtMultimedia 会导致问题。

这个问题已经在这些帖子中讨论过:link1link2,但他们没有提供任何解决方案。

我尝试卸载(sudo apt-get remove python3-pyqt5.qtmultimedia)并重新安装(sudo apt install python3-pyqt5.qtmultimedia),但没有成功。

有人可以帮忙吗?如果我不能解决这个问题,我的项目就真的陷入困境了。

多谢。

pyqt5 qtmultimedia

3
推荐指数
1
解决办法
9287
查看次数

QMediaplayer从Mac OS上加密的自定义QIODevice流式传输(10.9)

我目前正在将应用程序从Qt4(.8.4)移植到Qt5(.2.0).我几乎完成了所有已知的更改,例如弃用toAscii() - 函数,缺少QtGui等等.现在我们有一个使用声子框架的音乐播放器,它不再受支持,并被QtMultimedia模块取代,包括QMediaPlayer和一堆音频处理类.

我们的播放器实现采用自定义QIODevice.此设备为磁盘上的加密audiofiles提供接口.现在播放器向设备询问x字节,设备从加密文件中读取,解密播放器要求的字节并返回它们.

现在我在多媒体模块中搜索了一个函数来重用我的IODevice并找到了以下函数:

void setMedia(const QMediaContent & media, QIODevice * stream = 0)
Run Code Online (Sandbox Code Playgroud)

并使用如下:

m_pDecryptingMediaDevice = new BYIODevice(filename);    
m_pDecryptingMediaDevice->open(QIODevice::ReadOnly);    
m_pPlayer->setMedia(0, m_pDecryptingMediaDevice);
Run Code Online (Sandbox Code Playgroud)

其中m_pDecryptingMediaDevice是QIODevice-subclass,m_pPlayer是QMediaPlayer.

现在在Windows上,一切都按预期工作.QMediaplayer将其MediaStatus更改为QMediaPlayer :: LoadingMedia并向我的设备询问字节数.然后更改为QMediaPlayer :: State PlayingState,状态设置为BufferedMedia.一切安好.在Mac OS上的不幸(10.9.1)我只得到QMediaPlayer :: PlayingState而已.播放器/ audiobackend从不向我的设备询问字节数,也不调用任何其他功能.我不认为这个错误与自定义QIODevice有关,而是与QMediaPlayer有关,因为播放器甚至不询问任何字节或调用设备上的任何功能.

我只是试图将其分解为一个小测试项目:

QMediaPlayer *player = new QMediaPlayer(this);
QFile *music = new QFile("C:/Users/.../Music/Test.mp3");
music->open(QIODevice::ReadOnly);
player->setMedia(0, music);
connect(ui->pushButton, SIGNAL(clicked()), player, SLOT(play()));
connect(player, SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(stateChanged(QMediaPlayer::State)));
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这根本不起作用 - 不是在Windows上,而是在Mac OS上.总是有效的是给玩家一个URL

根据使用函数setMedia(const QMediaContent&media,QIODevice*stream = 0)将QIODevice流式传输到QMediaPlayer,是否有任何类似案例的经验?我坚持这个.

最好的问候和许多提前感谢.

一月

c++ qt5 qiodevice qmediaplayer qtmultimedia

2
推荐指数
1
解决办法
2602
查看次数

在规定的时间Qt中获取视频帧

我想做的是在某个时间(例如20秒)获取视频帧。我知道我可以做这样的事情-倒带视频并暂停它:

QMediaPlayer* player = new QMediaPlayer;
...
player->play();
player->setPosition(20000);
player->pause();
Run Code Online (Sandbox Code Playgroud)

但是,是否有一些更优雅的解决方案(对我来说这似乎是一个hack,因为我不需要整个视频,而有时只需要一帧)?

c++ video qt qtmultimedia qt5.7

2
推荐指数
1
解决办法
2801
查看次数

pyqt5 循环 mp3 文件

我想循环一个音频文件并使用这个代码(我的原始问题和解决方案)和这个代码(Qt C示例)的组合设法创建这个:

from PyQt5.QtCore import *
from PyQt5.QtMultimedia import *
import sys

if __name__ == "__main__":

    app = QCoreApplication(sys.argv)

    playlist = QMediaPlaylist()
    url = QUrl.fromLocalFile("./sound2.mp3")
    playlist.addMedia(url)
    playlist.setPlaybackMode(QMediaPlaylist.Loop)

    content = playlist()
    player = QMediaPlayer()
    player.setMedia(content)
    player.play()

    app.lastWindowClosed.connect(player.stop)
    app.exec()
Run Code Online (Sandbox Code Playgroud)

但是,此代码不起作用,报告的错误是:

类型错误:参数不匹配任何重载调用:addMedia(self, QMediaContent):参数 1 具有意外类型 'QUrl' addMedia(self, object):参数 1 具有意外类型 'QUrl'

我的代码哪里出错了?非常感谢任何帮助。

python pyqt audio-player pyqt5 qtmultimedia

2
推荐指数
1
解决办法
3516
查看次数

如何在透明的 QVideoWidget 顶部绘制 QtGraphicsView

我试图在视频播放器(QVideoWidget)之上覆盖一些图形(QtGraphicsView)。我已经尝试将 QtGraphicsView 子类样式表设置为透明和背景画笔,但都没有工作。

#self.setBackgroundBrush(QtGui.QBrush(QtGui.QColor(30, 30, 30, 3)))
#self.setStyleSheet("background-color:rgba(0,0,0,0)")
#self.setStyleSheet("background:rgba(0,0,0,0)")
self.setStyleSheet("background:transparent")
self.setStyleSheet("background-color:transparent")
self.setStyleSheet("background-color:rgba(30,30,30,3)")
self.setStyleSheet("background:rgba(30,30,30,3)")
Run Code Online (Sandbox Code Playgroud)

实际意图是轻松裁剪视频(视觉方式)。所有其他工作都是关于捕获事件、做数学等。这张图片很好地解释了情况。pyqt5 用户界面. 在这一点上,我感觉肯定是我做错了,QtMultiMedia 组件中必须有一些更简单的方法来绘制它们。任何想法真的很感激。

python pyqt qgraphicsview pyqt5 qtmultimedia

2
推荐指数
1
解决办法
1446
查看次数

模块“QtMultimedia”未安装

我已经使用普通的apt-get 安装方法在 Raspberry Pi 3 上安装了 Qt 和 Qtcreator 。一切似乎都工作正常,除了当我尝试构建声明性相机示例或其他多媒体示例时,我收到一条错误消息module "QtMultimedia" is not installed。然后弹出空白的白色应用程序窗口。

我已经尝试安装和重新安装所有必需的软件包,例如libqt5multimedia5,,它只是说它们安装了最新版本。qtmultimedia5-devetc

有没有人在树莓派上成功地让qt多媒体工作?

编辑:
我尝试使用建议的解决方案: sudo apt-get install qtdeclarative5-qtmultimedia-plugin

这给了我一个错误: E: Unable to locate package qtdeclarative5-qtmultimedia-plugin

qt raspbian qtmultimedia raspberry-pi3

2
推荐指数
1
解决办法
1万
查看次数

在Qt5中创建QVideoWidget

我有以下代码:

#include <QtWidgets/QtWidgets>
#include <QtMultimedia/QCamera>
#include <QtMultimedia/QMediaPlayer>

int main(int argc, char * argv[])
{
    QApplication testQt(argc, argv);
    QMainWindow w;

    QWidget videoContainer(&w);
    w.setCentralWidget(&videoContainer);

    QVideoWidget videoWidget(&videoContainer);

    QCamera cam(&w);
    cam.setViewfinder(&videoWidget);
    cam.start();

    w.show();

    return testQt.exec();
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个主窗口,创建一个容器小部件来显示视频,在该容器中创建一个视频单元,然后最终将摄像机的取景器设置为该视频单元.但是,当我尝试这样做时,我得到了错误

变量具有不完整类型'QVideoWidget'

为什么我收到此错误?

c++ qt qmake qtgui qtmultimedia

1
推荐指数
1
解决办法
2419
查看次数

如何在QT中实现简单的音频环回

我需要使用QT(从Windows上的qt 5.7)将从麦克风录制的音频直接回送至扬声器(假设在Windows上为qt 5.7)-假设我无法使用窗口的内部mic->扬声器回送(在麦克风面板上启用“收听此设备” )。

任何方向该怎么做?

qt audio-recording qtmultimedia

0
推荐指数
1
解决办法
1010
查看次数