问题标签 [qtmultimedia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2952 浏览

c++ - 在 Mac OS (10.9) 上使用加密的自定义 QIODevice 流式传输 QMediaplayer

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

我们的播放器实现采用自定义 QIODevice。该设备为磁盘上的加密音频文件提供了一个接口。现在播放器向设备请求 x 字节,设备从加密文件中读取,解密播放器请求的字节并返回它们。

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

并按如下方式使用它:

其中 m_pDecryptingMediaDevice 是 QIODevice 子类,m_pPlayer 是 QMediaPlayer。

现在在 Windows 上,一切都按预期工作。QMediaplayer 将其 MediaStatus 更改为 QMediaPlayer::LoadingMedia 并向我的设备询问字节。然后更改为 QMediaPlayer::State PlayingState 并将状态设置为 BufferedMedia。一切安好。Mac OS(10.9.1)上的不幸我只得到 QMediaPlayer::PlayingState ,仅此而已。播放器/音频后端从不向我的设备询问字节,也不调用任何其他函数。我认为错误与自定义 QIODevice 无关,而是与将其提供给 QMediaPlayer 的方式有关,因为播放器甚至不要求任何字节或调用设备上的任何函数。

我只是想把它分解成一个小测试项目:

奇怪的是,这根本不播放 - 不在 Windows 上,不在 Mac OS 上。总是有效的就是给玩家一个 URL,比如

根据使用函数 setMedia(const QMediaContent & media, QIODevice * stream = 0) 从 QIODevice 流式传输到 QMediaPlayer,有人在类似情况下有任何经验吗?我被这个困住了。

最好的问候,并提前非常感谢。

0 投票
2 回答
1475 浏览

qt - 视频的全屏模式

我在 QML 视图中嵌入了视频输出。它工作正常,但我想让视频输出在我点击它时全屏显示。

每次,我的视频顶部都会显示视图中的一些图像(一些是兄弟姐妹,一些不是)。实际上,它应该填充根元素,并且位于最前面的屏幕上。更改z属性不会做任何事情。

使视频全屏显示的最佳技巧是什么?当我从正常切换到全屏时,视频应该继续播放而不会中断。

仅在 QML(而不是 C++)中的解决方案会更可取,因为我通过解析 XML 文件来构建我的 QML。

0 投票
2 回答
3834 浏览

c++ - QAudioDeviceInfo 在 Ubuntu 上找不到默认音频设备

我正在尝试运行QAudioDeviceInfo 类参考中的基本示例,但 Qt 没有找到默认音频设备。

运行此代码显示没有输出:

我在 Ubuntu 13.10 上运行 Qt Creator 2.7.1 和 Qt 5.0.2。Qt Multimedia 是通过apt-get. 我的 pro 文件有QT += multimedia. 我的头文件包括:

关于我可能做错了什么的任何想法?

0 投票
0 回答
307 浏览

volume - QMediaPlayer 和分贝音量控制

我正在将我的音乐播放器从 Qt4 重写为 Qt5。我从 Phonon 切换到 QtMultimedia。我现在有一个严重的音量控制问题。为了支持 ReplayGain,我从媒体文件中读取标签,然后更改每个音轨的音量以保持相等。

在声子中,我使用 setVolumeDecibel,因为存储在标签中的音量差异以 dB 为单位。但是在 QtMultiMedia 中我不能使用它。QMediaPlayer 类只有一个 setVolume 函数。还有其他可能如何控制以 dB 为单位的音量吗?内部 setVolume 的计算是什么?也许我可以反转它以设置以 dB 为单位的音量。

或者你有什么其他建议我应该怎么做?

0 投票
1 回答
2625 浏览

c++ - QML 中如何播放视频?

我是qml的新手。我想知道视频是如何在 qml 中播放的。后端如何处理视频(负责视频播放的类和模块)。如何添加自定义播放器以在 QML 中播放视频?有这方面的文件吗?是否有编写用于视频播放的 qt 插件的教程。

我不知道从哪里开始寻找?请帮忙。提前致谢。

0 投票
3 回答
3358 浏览

c++ - QAudioDecoder - 未找到服务

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

我在 Windows 7 上使用带有 MingGW 4.8 32 位的 Qt 5.1.0。

错误信息:

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

.pro文件:

文件:

0 投票
1 回答
1431 浏览

arm - gstreamer-critical 在 arm 上执行 qt5

我已经使用 arm 编译器交叉编译了 Qt-5.xx 以获得多媒体支持。我能够使用 gstreamer 构建媒体服务插件。哪个是:

使用多媒体编译了一个示例。试图在船上执行。得到一个错误说:

用户界面出现。但是没有播放音频。我错过了什么?

0 投票
1 回答
6211 浏览

qt - QtQuick:无法在嵌入式 linux 上播放任何视频

我使用 TI 提供的工具链及其 SDK 6.00.00 交叉编译了 TI AM335x 板的 Qt 5.2.1。

不幸的是,我无法在 QML 中重现任何视频......

调试控制台告诉:

我在交叉编译中缺少什么吗?也许一些依赖?有人可以帮助我确定我缺少什么吗?

您可以在此处找到我的交叉编译配置,并在此处找到应用程序在设置环境变量时生成的完整消息跟踪QT_DEBUG_PLUGIN

0 投票
2 回答
1705 浏览

c++ - Qt中如何选择setCodec()函数的参数进行录音

我在 Qt 中使用 QAudioRecorder 来录制声音,这里是示例代码。

但我不知道如何使用 setCodec() 函数

void QAudioEncoderSettings::setCodec(const QString & codec)

如何找出我可以使用的参数(例如"audio/amr""audio/x-wav")及其确切含义?谢谢!

0 投票
2 回答
3976 浏览

qt - 为什么 QML MediaPlayer/VideoOutput 对我不起作用?

我正在尝试通过以下代码使用 qml 播放测试视频:

但是,当我点击查看时,什么也没有发生。如果我将onPressed事件更改为其他操作(不是使用player),它工作正常,那么这不是MouseArea问题。

我哪里错了?

谢谢你。