问题标签 [qmediaplayer]

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 投票
0 回答
432 浏览

c++ - 修改QMediaPlayer的音频输出流

我正在尝试将音频播放器从 Qt4 移植到 Qt5,并从 Phonon 移植到 QtMultimedia。QMediaPlayer 一切正常,除了我找不到任何方法来修改 QMediaPlayer 的输出和系统声音之间的音频流。我想对音频应用后处理效果。

有什么办法可以做到这一点?也许通过子类 QMediaPlayer?我已经检查了 QAudioOutput 和 QAudioDecoder 类,但我必须实现很多东西才能获得与 QMediaPlayer 相同的行为。

谢谢!

0 投票
2 回答
1140 浏览

c++ - 播放器未在此范围内声明(QmediaPlayer)

您好,我正在尝试从该站点运行示例:http: //doc.qt.io/qt-5/videooverview.html 我的代码如下:

当我尝试执行它时,我得到了错误:

错误:在此范围内未声明“播放器” player = new QMediaPlayer; ^ /home/roman/Downloads/Dropbox/PAdI/GuiAppTest/untitled/main.cpp:15:错误:“播放列表”未在此范围内声明播放列表=新QMediaPlaylist(播放器);^ /home/roman/Downloads/Dropbox/PAdI/GuiAppTest/untitled/main.cpp:15:错误:无效使用不完整类型'class QMediaPlaylist'播放列表=新QMediaPlaylist(播放器);^ 我使用 Qt 5 和 QT 小部件模板。怎么了?

0 投票
1 回答
470 浏览

c++ - 如何在 QT 中操作多个文件夹/目录?

我想知道如何操作目录,直到我得到视频文件。首先主目录是"F:/TestingVideos/" 在测试视频里面有文件例如:1。现金办公室 ,2.Rosville Gate ,3. 我的视频每个视频都包含其他文件夹,例如 Cash Office 有一个目录,"F:/TestingVideos/Cash Office/"里面有一个目录,我们有文件夹,例如我们有以下"F:/TestingVideos/Cash Office/20141201/"日期文件夹里面我有我想播放的视频。

到目前为止,我已经实现了一个方法:

}

我的输出对于我QFileInfo info;的可写和可读来说是正确的,我也这样做了,qDebug()<< info.absoluteFilePath()我得到了以下结果: "F:/TestingVideos" "F:/" "F:/TestingVideos/Cash Office" "F:/TestingVideos/Rosville" "F:/TestingVideos/My Videos"

我想要一种方法来操作 baseNames 即 Cash Office、Rosville 等... 文件夹,这样我就可以在另一个组合框中显示他们的文件夹,例如 20141201,因为目前 ui.monitoringcomboBox->show() 可以显示基本名称。我希望能够基本上将文件夹操作到可以使用 QUrl 播放视频的级别。

0 投票
0 回答
2938 浏览

c++ - 使用 QMediaplayer 库的 UDP 视频

我一直在玩 QMediaplayer 库。我很好奇它如何与一些流式视频源一起工作,所以我使用 VLC 使用 udp 协议来流式传输一些视频。

为了进行快速测试,我使用了名为MediaPlayer example的 Qt 示例。由于该示例仅适用于脱机文件,因此我在 Player 实现中添加了哑功能。

然后,在main.cpp文件中,我这样调用这个函数:

这样做是在读取程序后开始再现流源。

这里的问题是Qt通过我出现以下错误:

要使用本地文件和http 流来执行此操作,它可以工作......但是当我尝试使用 UDP 或 RTP 时,我总是会遇到同样的错误。

我花了几个小时寻找更多信息,但总是得到相同的响应......使用 QMLVLC......例如,看看这个

以前有人试过吗?这里有什么问题?

PD:我知道有一个 VLC 插件可以完成这项工作,但我想让这项工作只与 Qt 一起工作(或者至少,了解这里发生了什么)。

PD2:我使用的是 Windows 8.1、Qt 5.5 (mingw 4.9.2),并且我安装了所有重要的编解码器。

提前致谢,

更新

最后,我设法处理了新的http://code.qt.io,这是我怀疑阻止 udp(和其他)协议的代码 -> here。也许,只有“http”和“https”被接受为 Directshowsservice 上的有效流源......我将尝试在本周获得一些额外的时间来重新编译 windows 的多媒体模块,以便将 udp 协议添加到函数 doSetUrlSource看看会发生什么。如果有人先测试它,请在这里告诉我!

更新 2

首先,我怀疑 QMediaPlayer 无法重现 UDP/RTP 内容,因为 AddFilter 方法...无论如何,http、https 和 rtsp 都可以完美运行。

其次,我在 udp 协议上发现了一些奇怪的行为。我使用“udp://@239.1.1.1:1234”作为测试多播方向。奇怪的是,在一次测试中,我错误地输入了这个方向“udp://@239.1.1.1:1234z”,而这次没有出现错误。方向似乎需要包含一个字母。

0 投票
1 回答
1976 浏览

qt - Qt:QMediaPlayer 停止后的动作

在 QMediaPlayer 的视频结束后,我正在尝试执行某种操作/操作。我知道您可以检查播放器的状态,player->state()并且存在“已停止”状态。但是我想知道如何将这种状态与某个动作结合起来,也许是通过使用某个信号?有没有人有这样做的经验?或者有什么想法?我似乎无法找到解决方案。提前致谢。

0 投票
1 回答
710 浏览

android - 需要 QMediaPlayer 播放内存中的 mp3 数据

我想许多应用程序都需要小的音频剪辑,因此我希望 QT 支持在内存片中播放 mp3。也许将 mp3 数据解码为内存中的 wav 数据可能是一种解决方案,但这需要时间先解码所有数据。对于实时应用,这不是一个好主意。将 mp3_data 存储在文件中并要求 QMediaPlayer 播放也没有意义,性能无法接受。

这是我在谷歌多次搜索后的代码,包括stackoverflow:

其中 m_buffer 是一个 QBuffer 实例,而 mp3_data_in_memory 是一个 QByteArray ;m_player 是一个 QMediaPlayer 实例。

我得到了一些信息,这里的代码在 MacOS 和 iOS 中不起作用,但我现在在 Android 上运行。

谁有安卓系统的解决方案?非常感谢。

0 投票
3 回答
774 浏览

c++ - QMediaPlayer 应用程序在短时间内多次播放时无响应

我创建了一个默认的 Qt GUI 应用程序,我void keyPressEvent(QKeyEvent* ev);在主窗口类中添加了,当用户按下空格时,应用程序会播放声音(ok)但是当用户在短时间内多次按下时,应用程序不会响应。我不知道为什么?请帮帮我!

。轮廓:

主窗口.h

主窗口.cpp

主文件

(注:我这里确实上传了mainwindow.ui.res.qrc)

0 投票
2 回答
475 浏览

qt - 使用 QMediaPlayer 和 UNC 路径加载视频

感谢 Qt 5.5 QMediaPlayer,我正在尝试使用 UNC 路径从网络加载视频。代码片段如下:

该代码片段适用于本地文件,但在路径以//.

示例输出:

请注意,我能够读取sensors.csv文本文件并且video.mov具有相同的权限。

0 投票
1 回答
928 浏览

c++ - 在 QGraphicScene 中动态调整视频大小

所以我有一个 QMediaPlayer 播放视频,它包含在 QGraphicsVideoItem 内,在 QGraphicsScene 内。我在 QGraphicsScene 中也有文本。QGraphicsView 调整为文本的大小,但不是视频的大小,所以我只能看到视频的左上角。

有没有办法让视频拉伸以填充可用空间?有没有办法让视频在可用空间居中,而不是卡在左上角?

以下是我当前的代码。

0 投票
0 回答
309 浏览

qt - QT 接受 udp 链接而不是本地视频文件

我正在尝试接受 udp 视频流而不是本地视频文件。下面的代码用于从我的本地驱动器中获取视频,并且在运行程序时,视频将加载并在 gui 显示器上播放。

有什么方法可以接受 udp 视频流并在 QMediaPlayer 中播放?

[更新]

我在我的项目中使用 vlc-qt 库。参考本教程

但是,当创建 vlc 实例时,我的程序崩溃了。请指教。