问题标签 [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 投票
1 回答
2636 浏览

qt - Qt -- 如何播放存储在 QByteArray 中的音频文件?

我正在研究 Qt 中的一个特殊应用程序,它将其 .mp3 音频文件作为 BLOB 数据存储在 QSQLITE 数据库中。

使用以下代码,我创建了一个 QByteArray:

然后我尝试用 QMediaPlayer 播放声音:

但不幸的是,我收到了这个错误:

我想要实现的主要目标是能够播放存储在 QByteArray 中的这些 .mp3 文件。

注意:在这种特殊情况下,不可能只将路径存储在数据库中。

我真的非常感谢您的帮助。非常感谢!

0 投票
1 回答
438 浏览

c++ - 引用预定义的 QMediaPlayer

嗨,我今年仍在为我在学校的主要项目学习 C++ 和 QT,我想要一些关于 C++ 语法和使用某些 QT 函数的帮助。当我正在制作媒体管理器时,我已经设法通过按下表单中的按钮来播放歌曲。现在我想通过按另一个按钮来暂停同一首歌曲,但我不完全确定该怎么做,你能帮忙吗?

我已经有了这个来播放歌曲:

但我想知道如何从名为“播放器”的 QMediaPlayer 中暂停相同的音频文件,目前我所想到的就是这个,我不确定我是否做得正确:

这两个功能(如果是这样的话)都是从按下按钮开始的,我知道它适用于第一个。

0 投票
1 回答
2067 浏览

qt - 从 Qt QMediaPlayer 获取流数据

QMediaPlayer用来播放在线 mp3,我想在缓冲区完成后下载整个 mp3 数据。但与它相关的唯一功能是setMedia(const QMediaContent & media, QIODevice * stream = 0).

流指针用于放入数据。所以我尝试使用QReply它作为它的参数。它绝对失败了。

mgr是 QNetworkAccessManager,source 是 mp3 的在线 url 。

我的问题是:有没有办法获取音乐数据?是setMedia可以做到的吗?

- - - - - - - - - - - - - 更新 - - - - - - - -

我连接了回复的信号,并在第一时间readReady将其放入该回复有一些要阅读的内容。但返回错误。setMediaQMediaPlayerQMediaPlayer::ResourceError

PS我添加了QMediaPlayer::StreamPlayback标志。

- - - - - - - - - - - - 更新 - - - - - - - - - - - - - -------------

我找到了为什么我的代码不起作用。setMedia函数调用DirectShowPlayerService::load惯性。并且有这样的线路检查:

因为isSequential()有文档:

bool QIODevice::isSequential() const [virtual] 如果此设备是连续的,则返回 true;否则返回假。

与随机访问设备相反,顺序设备没有开始、结束、大小或当前位置的概念,也不支持查找。只有当设备报告数据可用时,您才能从设备中读取。顺序设备最常见的例子是网络套接字。在 Unix 上,诸如 /dev/zero 和 fifo 管道之类的特殊文件是连续的。

另一方面,常规文件确实支持随机访问。它们既有大小又有当前位置,还支持在数据流中向后和向前搜索。常规文件是不连续的。

最后,网络回复不能在这种情况下使用。:-(</p>

所以我的进一步研究可能是: Qt 如何处理网络套接字。有什么方法可以获取数据吗?

- - - - - - - - - 更新 - - - - - - - - - - -

好像QMediaPlayer是基于GStreamer并且有办法下载源代码的注释中的数据。但是我没有使用过GStreamer,所以我很难使用Qt的下载功能。

我发现的唯一有用的信息是:QMediaPlayer API 用于下载播放流。但我不知道该怎么做。请帮我!

0 投票
1 回答
942 浏览

c++ - 无法使用 QMediaPlayer 播放某些视频

我有一个播放视频的 Qt 5.3 应用程序,它适用于某些视频。不幸的是,当给定一些 .mov 文件时,我要么得到一个,QMediaPlayer::FormatError要么我可以听到音频但没有视频。

我假设这是由于缺少编解码器,有没有办法添加支持以便我可以播放视频?

编辑:这是在 OS X

0 投票
1 回答
1001 浏览

qt - 获取 QMediaPlaylist 对象的持续时间

我为有声读物创建了一个播放器 - 当您打开一个包含 mp3 文件的文件夹时,它们的整个列表将添加到播放列表和列表视图中。我有一个标签,它假设显示整本书的持续时间。但是 player->duration 只返回当前曲目的持续时间,如果我通过循环并执行 playlist->next() 每一步, player->duration 返回 0。我知道 Phonon 和文件元数据,但我需要在不使用它的情况下执行此操作。

0 投票
2 回答
7237 浏览

c++ - 使用 QMediaPlayer 播放资源中的 mp3 文件

我尝试播放资源中声明的 mp3 文件,但它显示:

这是我设置媒体的方式:

根据这篇文章,它说QMediaPlayer需要play()在回调之后调用mediaStatusChanged(),这正是我所做的。所以有什么问题???

PS 我可以将QMediaPlayer 示例中的 mp3 文件作为本地文件播放。

更新 1:我可以将 mp3 文件作为本地文件播放...

0 投票
2 回答
450 浏览

macos - 将 mp3 文件打包到 Qt 应用程序中

由于我发现 QMediaPlayer 无法从资源中检索 mp3 文件,因此我想将它们用作本地文件。我使用这个 cmd稍作修改将文件复制到安装目录:

所以这些文件存在于 /HomeControl.app/Contents/MacOS/sound 中。从 Qt Creator 应用程序可以完美播放 mp3,但如果从构建目录执行,它根本不会播放 mp3!真的不知道为什么。

与在 Qt 创建器中执行和直接从应用程序执行有什么区别吗?像调试模式还是什么?

还是有其他方法可以将 mp3 文件正确部署到包中?

0 投票
1 回答
1767 浏览

c++ - How to get the total time of an audio file?

How to get the total time of an audio file? I am trying this:

but all the time the function returns 0. I use the latest version Qt on Windows 8.

0 投票
1 回答
1019 浏览

android - 哪些视频文件可以在 Android 上播放 QMediaPlayer?

我在 Windows 上使用 QT 5.3.1 和 QT Creator。我在 Examples\Qt-5.3\multimediawidgets\videographicsitem\ dir 示例中找到了 QMediaPlayer。但它只在 Windows 上播放 .mp4 H264 文件,不希望播放 .mkv H264 和 .avi 文件。此外,该项目不想在 Android 4.0.3(API 15)上播放 .mp4 H264 视频(并且它不播放任何视频)。

是否可以在 Android 4.0.3 (API 15) 上播放 .mp4 H264 视频文件?

0 投票
0 回答
93 浏览

qt - 使用 MAC 从 IODevice 流式传输 Qt 音频

我有一个关于 Qt5 的问题。我使用了一个 SQlite DB,它包含小的 mp3 BLOB。

现在,我直接从数据库中使用 QMediaPlayer 流式传输音频数据来播放它(使用 QIODevice)。

这适用于 Linux,但在移植到 MAC 时,它不会播放音频。

在做了一些谷歌搜索后,我发现,这是因为后端不同,GStreamer 与 QuickTime(是否支持流媒体)。

现在的问题是,我该怎么做才能让它工作?是否可以在我的 Mac 应用程序中静态编译 GStreamer?或者您对虚拟文件支持有什么建议,所以我可以将 QUrl 用于 QMediaPlayer?

一个例子会很棒,谢谢。